mirror of https://github.com/sussy-code/docs.git
100 lines
3.8 KiB
Markdown
100 lines
3.8 KiB
Markdown
|
### Guide to full Self-Deployment of movie-web with Docker Compose
|
||
|
|
||
|
1. **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:
|
||
|
- [Install Docker](https://docs.docker.com/get-docker/)
|
||
|
|
||
|
2. **Create a Docker Compose file:**
|
||
|
|
||
|
Create a new file named `docker-compose.yml` in your project directory and paste the following content into it:
|
||
|
|
||
|
```yaml
|
||
|
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:
|
||
|
- movie-web-network
|
||
|
|
||
|
movie-web-backend:
|
||
|
image: ghcr.io/movie-web/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:
|
||
|
- movie-web-network
|
||
|
|
||
|
movie-web-frontend:
|
||
|
build:
|
||
|
context: https://github.com/movie-web/movie-web.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:
|
||
|
- movie-web-network
|
||
|
restart: unless-stopped
|
||
|
|
||
|
movie-web-proxy:
|
||
|
image: ghcr.io/movie-web/simple-proxy:latest
|
||
|
ports:
|
||
|
- "3000:3000"
|
||
|
networks:
|
||
|
- movie-web-network
|
||
|
restart: unless-stopped
|
||
|
|
||
|
networks:
|
||
|
movie-web-network:
|
||
|
driver: bridge
|
||
|
|
||
|
**Important:**
|
||
|
* Replace `YourPasswordHere` with your secure database password.
|
||
|
* Generate a strong session secret and replace `32CharacterLongStringHere`.
|
||
|
```
|
||
|
**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](https://movie-web.github.io/docs/client/tmdb).
|
||
|
* replace `yourDomainHere` with whatever you'll be using to access your main site, like movie-web.app
|
||
|
* replace `meta__name` and `meta__description`
|
||
|
2. **Start the Backend:** Open a terminal in the directory containing `docker-compose.yml` and execute:
|
||
|
|
||
|
```bash
|
||
|
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](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/get-started/create-remote-tunnel/).
|