replace nyone.net to nyone.app
This commit is contained in:
@@ -2,7 +2,7 @@ APP_NAME=Nyone
|
||||
APP_ENV=local
|
||||
APP_KEY=
|
||||
APP_DEBUG=true
|
||||
APP_URL=https://nyone.net
|
||||
APP_URL=https://nyone.app
|
||||
|
||||
APP_LOCALE=en
|
||||
APP_FALLBACK_LOCALE=en
|
||||
@@ -64,7 +64,7 @@ AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||
|
||||
VITE_APP_NAME="${APP_NAME}"
|
||||
|
||||
STREAMING_RTMP_INGEST_URL=rtmp://nyone.net:19935
|
||||
STREAMING_RTMP_INGEST_URL=rtmp://nyone.app:19935
|
||||
STREAMING_HLS_PUBLIC_URL=https://nyone-hls.net
|
||||
STREAMING_MEDIAMTX_API_URL=http://127.0.0.1:9997
|
||||
STREAMING_VIEWER_COUNT_CACHE_STORE=redis
|
||||
|
||||
@@ -35,8 +35,8 @@ The project config is aligned to these production-style domains:
|
||||
|
||||
```env
|
||||
APP_NAME=Nyone
|
||||
APP_URL=https://nyone.net
|
||||
STREAMING_RTMP_INGEST_URL=rtmp://nyone.net:19935
|
||||
APP_URL=https://nyone.app
|
||||
STREAMING_RTMP_INGEST_URL=rtmp://nyone.app:19935
|
||||
STREAMING_HLS_PUBLIC_URL=https://nyone-hls.net
|
||||
MEDIAMTX_SHARED_SECRET=change-this-secret
|
||||
```
|
||||
|
||||
@@ -52,7 +52,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'url' => env('APP_URL', 'https://nyone.net'),
|
||||
'url' => env('APP_URL', 'https://nyone.app'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -41,7 +41,7 @@ return [
|
||||
'public' => [
|
||||
'driver' => 'local',
|
||||
'root' => storage_path('app/public'),
|
||||
'url' => rtrim(env('APP_URL', 'https://nyone.net'), '/').'/storage',
|
||||
'url' => rtrim(env('APP_URL', 'https://nyone.app'), '/').'/storage',
|
||||
'visibility' => 'public',
|
||||
'throw' => false,
|
||||
'report' => false,
|
||||
|
||||
@@ -46,7 +46,7 @@ return [
|
||||
'username' => env('MAIL_USERNAME'),
|
||||
'password' => env('MAIL_PASSWORD'),
|
||||
'timeout' => null,
|
||||
'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url((string) env('APP_URL', 'https://nyone.net'), PHP_URL_HOST)),
|
||||
'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url((string) env('APP_URL', 'https://nyone.app'), PHP_URL_HOST)),
|
||||
],
|
||||
|
||||
'ses' => [
|
||||
|
||||
@@ -12,7 +12,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'rtmp_ingest_url' => env('STREAMING_RTMP_INGEST_URL', 'rtmp://nyone.net:19935'),
|
||||
'rtmp_ingest_url' => env('STREAMING_RTMP_INGEST_URL', 'rtmp://nyone.app:19935'),
|
||||
'hls_public_url' => env('STREAMING_HLS_PUBLIC_URL', 'https://nyone-hls.net'),
|
||||
|
||||
/*
|
||||
|
||||
@@ -17,7 +17,7 @@ class DatabaseSeeder extends Seeder
|
||||
{
|
||||
PlatformSetting::current();
|
||||
|
||||
$admin = User::query()->firstOrNew(['email' => 'admin@nyone.net']);
|
||||
$admin = User::query()->firstOrNew(['email' => 'admin@nyone.app']);
|
||||
$admin->forceFill([
|
||||
'name' => 'Admin User',
|
||||
'password' => 'password',
|
||||
@@ -26,7 +26,7 @@ class DatabaseSeeder extends Seeder
|
||||
'can_create_channel' => false,
|
||||
])->save();
|
||||
|
||||
$official = User::query()->firstOrNew(['email' => 'chief@nyone.net']);
|
||||
$official = User::query()->firstOrNew(['email' => 'chief@nyone.app']);
|
||||
$official->forceFill([
|
||||
'name' => 'Chief Nyone',
|
||||
'password' => 'password',
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
authMethod: http
|
||||
authHTTPAddress: https://nyone.net/internal/mediamtx/auth?secret=change-this-secret
|
||||
authHTTPAddress: https://nyone.app/internal/mediamtx/auth?secret=change-this-secret
|
||||
authHTTPExclude:
|
||||
- action: read
|
||||
- action: playback
|
||||
@@ -17,17 +17,17 @@ hls: yes
|
||||
hlsAddress: :19988
|
||||
hlsVariant: mpegts
|
||||
hlsAllowOrigins:
|
||||
- https://nyone.net
|
||||
- https://nyone.app
|
||||
|
||||
|
||||
pathDefaults:
|
||||
record: yes
|
||||
recordPath: ./storage/app/private/recordings/%path/%Y-%m-%d_%H-%M-%S-%f
|
||||
|
||||
runOnReady: curl -X POST "https://nyone.net/internal/mediamtx/ready?secret=change-this-secret" --data-urlencode "path=$MTX_PATH" --data-urlencode "source_type=$MTX_SOURCE_TYPE" --data-urlencode "source_id=$MTX_SOURCE_ID"
|
||||
runOnReady: curl -X POST "https://nyone.app/internal/mediamtx/ready?secret=change-this-secret" --data-urlencode "path=$MTX_PATH" --data-urlencode "source_type=$MTX_SOURCE_TYPE" --data-urlencode "source_id=$MTX_SOURCE_ID"
|
||||
runOnReadyRestart: no
|
||||
runOnNotReady: curl -X POST "https://nyone.net/internal/mediamtx/not-ready?secret=change-this-secret" --data-urlencode "path=$MTX_PATH" --data-urlencode "source_type=$MTX_SOURCE_TYPE" --data-urlencode "source_id=$MTX_SOURCE_ID"
|
||||
runOnRecordSegmentComplete: curl -X POST "https://nyone.net/internal/mediamtx/recording-complete?secret=change-this-secret" --data-urlencode "path=$MTX_PATH" --data-urlencode "segment_path=$MTX_SEGMENT_PATH" --data-urlencode "duration=$MTX_SEGMENT_DURATION"
|
||||
runOnNotReady: curl -X POST "https://nyone.app/internal/mediamtx/not-ready?secret=change-this-secret" --data-urlencode "path=$MTX_PATH" --data-urlencode "source_type=$MTX_SOURCE_TYPE" --data-urlencode "source_id=$MTX_SOURCE_ID"
|
||||
runOnRecordSegmentComplete: curl -X POST "https://nyone.app/internal/mediamtx/recording-complete?secret=change-this-secret" --data-urlencode "path=$MTX_PATH" --data-urlencode "segment_path=$MTX_SEGMENT_PATH" --data-urlencode "duration=$MTX_SEGMENT_DURATION"
|
||||
|
||||
paths:
|
||||
all_others:
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
These configs match the current project domains:
|
||||
|
||||
- App: `https://nyone.net`
|
||||
- App: `https://nyone.app`
|
||||
- HLS playback: `https://nyone-hls.net`
|
||||
- OBS ingest: `rtmp://nyone.net:19935`
|
||||
- OBS ingest: `rtmp://nyone.app:19935`
|
||||
|
||||
MediaMTX stays private on local ports:
|
||||
|
||||
@@ -29,14 +29,14 @@ sudo systemctl reload nginx
|
||||
|
||||
Make sure DNS points both hostnames to the server:
|
||||
|
||||
- `nyone.net`
|
||||
- `nyone.app`
|
||||
- `nyone-hls.net`
|
||||
|
||||
The Laravel `.env` should use:
|
||||
|
||||
```env
|
||||
APP_URL=https://nyone.net
|
||||
STREAMING_RTMP_INGEST_URL=rtmp://nyone.net:19935
|
||||
APP_URL=https://nyone.app
|
||||
STREAMING_RTMP_INGEST_URL=rtmp://nyone.app:19935
|
||||
STREAMING_HLS_PUBLIC_URL=https://nyone-hls.net
|
||||
MEDIAMTX_SHARED_SECRET=change-this-secret
|
||||
```
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# Laravel application vhost for nyone.net.
|
||||
# Laravel application vhost for nyone.app.
|
||||
# Copy to /etc/nginx/sites-available/nyone-app.conf and symlink into sites-enabled.
|
||||
# Adjust root and fastcgi_pass for your server.
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name nyone.net;
|
||||
server_name nyone.app;
|
||||
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
@@ -13,13 +13,13 @@ server {
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
server_name nyone.net;
|
||||
server_name nyone.app;
|
||||
|
||||
root /var/www/nyone/public;
|
||||
index index.php;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/nyone.net/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/nyone.net/privkey.pem;
|
||||
ssl_certificate /etc/letsencrypt/live/nyone.app/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/nyone.app/privkey.pem;
|
||||
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# HLS reverse proxy for MediaMTX.
|
||||
# Browser origin is https://nyone.net, while playback URLs point here:
|
||||
# Browser origin is https://nyone.app, while playback URLs point here:
|
||||
# https://nyone-hls.net/<channel-slug>/index.m3u8
|
||||
|
||||
server {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# Fresh Ubuntu VPS Deployment for nyone.net
|
||||
# Fresh Ubuntu VPS Deployment for nyone.app
|
||||
|
||||
This guide explains how to deploy Nyone from only the `dockerized/` folder on a fresh Ubuntu VPS.
|
||||
|
||||
It assumes:
|
||||
|
||||
- App domain: `nyone.net`
|
||||
- HLS playback domain: `hls.nyone.net`
|
||||
- RTMP ingest URL: `rtmp://nyone.net:1935`
|
||||
- App domain: `nyone.app`
|
||||
- HLS playback domain: `hls.nyone.app`
|
||||
- RTMP ingest URL: `rtmp://nyone.app:1935`
|
||||
- Docker Apache is private on `127.0.0.1:8080`
|
||||
- Host Nginx handles public HTTP, HTTPS, and SSL certificates
|
||||
|
||||
@@ -17,8 +17,8 @@ The application repository itself does not need to exist on the server before de
|
||||
Create DNS records before requesting SSL certificates:
|
||||
|
||||
```text
|
||||
nyone.net A <VPS_PUBLIC_IPV4>
|
||||
hls.nyone.net A <VPS_PUBLIC_IPV4>
|
||||
nyone.app A <VPS_PUBLIC_IPV4>
|
||||
hls.nyone.app A <VPS_PUBLIC_IPV4>
|
||||
```
|
||||
|
||||
If your DNS provider has an HTTP proxy mode, make sure TCP `1935` still reaches the VPS directly for RTMP. With Cloudflare, that usually means the RTMP hostname must be DNS-only, not proxied.
|
||||
@@ -26,8 +26,8 @@ If your DNS provider has an HTTP proxy mode, make sure TCP `1935` still reaches
|
||||
Wait until DNS resolves from the VPS or your local machine:
|
||||
|
||||
```bash
|
||||
dig +short nyone.net
|
||||
dig +short hls.nyone.net
|
||||
dig +short nyone.app
|
||||
dig +short hls.nyone.app
|
||||
```
|
||||
|
||||
## 2. SSH into the VPS
|
||||
@@ -122,7 +122,7 @@ Edit the Docker deployment environment:
|
||||
nano /opt/nyone/dockerized/.env
|
||||
```
|
||||
|
||||
Use these values for `nyone.net`:
|
||||
Use these values for `nyone.app`:
|
||||
|
||||
```env
|
||||
COMPOSE_PROJECT_NAME=nyone
|
||||
@@ -131,8 +131,8 @@ GIT_REPOSITORY_URL=git@github.com:your-org/nyone.git
|
||||
GIT_REF=main
|
||||
|
||||
PUBLIC_SCHEME=https
|
||||
APP_DOMAIN=nyone.net
|
||||
HLS_DOMAIN=hls.nyone.net
|
||||
APP_DOMAIN=nyone.app
|
||||
HLS_DOMAIN=hls.nyone.app
|
||||
APP_HTTP_PORT=127.0.0.1:8080
|
||||
RTMP_PUBLIC_PORT=1935
|
||||
|
||||
@@ -239,7 +239,7 @@ tee /etc/nginx/sites-available/nyone-temp.conf >/dev/null <<'EOF'
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name nyone.net hls.nyone.net;
|
||||
server_name nyone.app hls.nyone.app;
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
root /var/www/certbot;
|
||||
@@ -263,15 +263,15 @@ Request the certificate:
|
||||
```bash
|
||||
certbot certonly --webroot \
|
||||
-w /var/www/certbot \
|
||||
-d nyone.net \
|
||||
-d hls.nyone.net
|
||||
-d nyone.app \
|
||||
-d hls.nyone.app
|
||||
```
|
||||
|
||||
The certificate files should be under:
|
||||
|
||||
```text
|
||||
/etc/letsencrypt/live/nyone.net/fullchain.pem
|
||||
/etc/letsencrypt/live/nyone.net/privkey.pem
|
||||
/etc/letsencrypt/live/nyone.app/fullchain.pem
|
||||
/etc/letsencrypt/live/nyone.app/privkey.pem
|
||||
```
|
||||
|
||||
## 10. Install final Nginx proxy config
|
||||
@@ -281,7 +281,7 @@ tee /etc/nginx/sites-available/nyone.conf >/dev/null <<'EOF'
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name nyone.net hls.nyone.net;
|
||||
server_name nyone.app hls.nyone.app;
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
root /var/www/certbot;
|
||||
@@ -295,10 +295,10 @@ server {
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
server_name nyone.net;
|
||||
server_name nyone.app;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/nyone.net/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/nyone.net/privkey.pem;
|
||||
ssl_certificate /etc/letsencrypt/live/nyone.app/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/nyone.app/privkey.pem;
|
||||
|
||||
client_max_body_size 100M;
|
||||
|
||||
@@ -322,10 +322,10 @@ server {
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
server_name hls.nyone.net;
|
||||
server_name hls.nyone.app;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/nyone.net/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/nyone.net/privkey.pem;
|
||||
ssl_certificate /etc/letsencrypt/live/nyone.app/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/nyone.app/privkey.pem;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
@@ -362,7 +362,7 @@ certbot renew --dry-run
|
||||
Check the app health endpoint:
|
||||
|
||||
```bash
|
||||
curl -I https://nyone.net/up
|
||||
curl -I https://nyone.app/up
|
||||
```
|
||||
|
||||
Check container status:
|
||||
@@ -397,14 +397,14 @@ Do not expose port `9997` on the public firewall.
|
||||
Creators should use:
|
||||
|
||||
```text
|
||||
OBS server: rtmp://nyone.net:1935
|
||||
OBS server: rtmp://nyone.app:1935
|
||||
OBS stream key: <channel-slug>?token=<generated-stream-key>
|
||||
```
|
||||
|
||||
Viewer playback URLs generated by Laravel should look like:
|
||||
|
||||
```text
|
||||
https://hls.nyone.net/<channel-slug>/index.m3u8
|
||||
https://hls.nyone.app/<channel-slug>/index.m3u8
|
||||
```
|
||||
|
||||
## 14. Redeploy after app changes
|
||||
|
||||
@@ -157,16 +157,16 @@ admin@example.com / password
|
||||
Current `.env` values relevant to streaming:
|
||||
|
||||
```env
|
||||
APP_URL=https://nyone.net
|
||||
STREAMING_RTMP_INGEST_URL=rtmp://nyone.net:19935
|
||||
APP_URL=https://nyone.app
|
||||
STREAMING_RTMP_INGEST_URL=rtmp://nyone.app:19935
|
||||
STREAMING_HLS_PUBLIC_URL=https://nyone-hls.net
|
||||
MEDIAMTX_SHARED_SECRET=change-this-secret
|
||||
```
|
||||
|
||||
MediaMTX current files:
|
||||
|
||||
- `deploy/mediamtx.yml`: currently points auth/hooks to `https://nyone.net`.
|
||||
- `deploy/mediamtx.home.yml`: points auth/hooks to `https://nyone.net`.
|
||||
- `deploy/mediamtx.yml`: currently points auth/hooks to `https://nyone.app`.
|
||||
- `deploy/mediamtx.home.yml`: points auth/hooks to `https://nyone.app`.
|
||||
|
||||
MediaMTX ports currently configured:
|
||||
|
||||
@@ -176,7 +176,7 @@ MediaMTX ports currently configured:
|
||||
OBS should use:
|
||||
|
||||
```text
|
||||
Server: rtmp://nyone.net:19935
|
||||
Server: rtmp://nyone.app:19935
|
||||
Stream Key: <channel-slug>?token=<generated-stream-key>
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user