Extra

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:

services:
postgres:
  image: postgres
  environment:
    POSTGRES_USER: pstream_user
    POSTGRES_DB: pstream
    POSTGRES_PASSWORD: YourPasswordHere 
  ports:
    - "5432:5432" 
  networks:
    - p-stream-network
p-stream:
  image: ghcr.io/dumbutdumber/backend:latest
  environment:
    DATABASE_URL: postgresql://pstream_user:YourPasswordHere@postgres:5432/pstream
    CRYPTO_SECRET: 32CharacterLongStringHere 
    META_NAME: unofficial-backend
  ports:
    - "80:80"
  depends_on:
    - postgres
  networks:
    - p-stream-network
 
  p-stream-frontend:
    build:
      context: https://github.com/p-stream/p-stream.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:
      - p-stream-network
    restart: unless-stopped
 
  p-stream-proxy:
    image: ghcr.io/p-stream/simple-proxy:latest
    ports:
      - "3000:3000"
    networks:
      - p-stream-network
    restart: unless-stopped
 
networks:
  p-stream-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 pstream.mov
  • 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.