Guide to Self-Deployment with Docker Compose#
Install Docker and Docker Compose:
Ensure that Docker and Docker Compose are installed on your system. You can follow the official Docker documentation for installation instructions:
Create a Docker Compose file:
Create a new file named docker-compose.yml
in your project directory and paste the following content into it:
version : '3.8'
services :
postgres :
image : postgres
restart : unless-stopped
environment :
POSTGRES_USER : movie_web_user
POSTGRES_DB : movie_web_backend
POSTGRES_PASSWORD : YourPasswordHere
networks :
- sudo-flix-network
sudo-flix-backend :
image : ghcr.io/sussy-code/backend:latest
restart : unless-stopped
environment :
MWB_SERVER__CORS : "https://movie-backend.example.tld https://movie.example.tld"
MWB_SERVER__PORT : 8080
MWB_POSTGRES__CONNECTION : postgresql://movie_web_user:YourPasswordHere@postgres:5432/movie_web_backend
MWB_CRYPTO__SESSION_SECRET : 32CHARACTERLONGSECRET
MWB_META__NAME : Server name
MWB_META__DESCRIPTION : Server Description
MWB_POSTGRES__MIGRATE_ON_BOOT : "true"
MWB_SERVER__TRUSTPROXY : "true"
MWB_SERVER__TRUSTCLOUDFLARE : "true"
# This is needed to resolve errors running migrations on some platforms - does not affect the application
MIKRO_ORM_MIGRATIONS_DISABLE_FOREIGN_KEYS : "false"
ports :
- "8080:8080"
depends_on :
- postgres
networks :
- sudo-flix-network
sudo-flix-frontend :
build :
context : https://github.com/sussy-code/smov.git
args :
TMDB_READ_API_KEY : "YourTMDBReadAPIKeyHere"
CORS_PROXY_URL : "https://cors.example.tld https://second.cors.example.tld"
BACKEND_URL : "https://backend.example.tld"
DMCA_EMAIL : "YourEmail"
PWA_ENABLED : "true"
APP_DOMAIN : "YourDomainHere"
OPENSEARCH_ENABLED : "true"
GA_ID : "Google ID Here"
ports :
- "80:80"
networks :
- sudo-flix-network
restart : unless-stopped
sudo-flix-proxy :
image : ghcr.io/sussy-code/sudo-proxy:latest
ports :
- "3000:3000"
networks :
- sudo-flix-network
restart : unless-stopped
networks :
sudo-flix-network :
driver : bridge
Important:
Replace YourPasswordHere
with your secure database password.
Generate a strong session secret and replace 32CharacterLongStringHere
.
Replace TMDBReadAPIKey
with your api key learn more here .
replace yourDomainHere
with whatever you'll be using to access your main site, like sudo-flix.app
replace meta__name
and meta__description
Start the Backend: Open a terminal in the directory containing docker-compose.yml
and execute:
docker compose up --detach
Accessing Your Backend#
Your services should be accessible on (YourPrivateIP):port
. To share it outside your local network, you'll need to configure port forwarding or cloudflared tunnel.
Optional: Implementing a Reverse Proxy#
To enhance your SSL and domain configuration, it's advisable to establish a reverse proxy, such as Nginx. For an optimal choice in this regard, Cloudflare Zero Trust Tunnel is recommended. You can find more information here .