A video player made out of shitposts.
- Supported websites:
- Modern Youtube-like player based on https://plyr.io/
- Video duplication prevention based on hash and filename check
- Full-fledged playlist with thumbnails
- Download and share video URL
- Mobile-friendly UI
- Hotkeys
- Closed boards support (initial stage)
- Personal view history based duplication prevention
- More websites to come
- Install
dockerwithdocker compose. - Install
make. - Install
git. - Install
nginx. - Create a non-root user, add it to
www-dataanddockergroups. - Clone the project
- Set up
.envfile (see .env variables reference and.env.examplefile). - Set up
.rr.yamlfile from either.rr.yaml.prod.exampleor.rr.yaml.dev.example.
- Install certificates into
/etc/ssl.
server {
listen 80;
server_name {your external web host};
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name {your external web host};
ssl_certificate /etc/ssl/{cert}.crt;
ssl_certificate_key /etc/ssl/{cert}.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:{your APP_PORT value here};
}
}
suto the non-root user previously createdcdinto project directorygit fetch --tags --force && git pull && git checkout tags/{TAG}make up- If this is the first launch, execute
make down,make keygen,make up.
To stop, execute make down. To stop forcibly, execute make kill.
| Variable | Description | Example Dev Value | Example Prod Value |
|---|---|---|---|
| APP_NAME | The name of the Laravel App | Webm TV | Webm TV |
| APP_ENV | Laravel App Mode | local | prod |
| APP_KEY | Laravel Encryption Key | autogenerated | autogenerated |
| APP_DEBUG | Enables detailed error messages | true | false |
| APP_URL | External URL the app is available on | http://localhost:8080 | https://example.com |
| APP_PORT | The external port of app container. Your host's NGINX should proxy pass to that port. The port must be closed for external requests. | 8080 | 8080 |
| XDEBUG_MODE | Enables Xdebug | debug | off |
| LOG_CHANNEL | Laravel Log Channel | stack | stack |
| LOG_LEVEL | Laravel Log Level | debug | debug |
| DB_CONNECTION | DBMS | mysql | mysql |
| DB_HOST | Host of the MySQL Docker container | mysql | mysql |
| DB_PORT | Port of the MySQL Docker container | 3306 | 3306 |
| DB_DATABASE | Database name | webm | webm |
| DB_USERNAME | Database user | user | user |
| DB_PASSWORD | Database password | hunter2 | hunter2 |
| CACHE_DRIVER | Where to store cache | redis | redis |
| SESSION_DRIVER | Where to store sessions | redis | redis |
| SESSION_LIFETIME | In minutes | 120 | 120 |
| REDIS_HOST | Host of the Redis Docker container | redis | redis |
| REDIS_PORT | Port of the Redis Docker container | 6379 | 6379 |
| SCOUT_DRIVER | Fulltext search provider | meilisearch | meilisearch |
| MEILISEARCH_HOST | Host + port of Meilisearch Docker container | http://meilisearch:7700 | http://meilisearch:7700 |
| MEILISEARCH_NO_ANALYTICS | Disables sending analytics to Meili | false | false |
| OCTANE_SERVER | Laravel Octane provider | roadrunner | roadrunner |
| OCTANE_HOST | Host RoadRunner listens to | 0.0.0.0 | 0.0.0.0 |
| OCTANE_PORT | Port RoadRunner listens to | 8000 | 8000 |
| OCTANE_MAX_EXECUTION_TIME | Max execution time of RoadRunner worker | 0 | 30 |
| OCTANE_HTTPS | Informs to return https:// urls | false | true |
