Backend

Deploying the backend#

The only officially recognized hosting method is through Docker (or similar container runtimes). It can be scaled horizontally to all your heart's content and is the safest way to host the backend.

For configuration, check out the configuration reference.

Method 1 - Docker Deployment#

This method provides a straightforward setup with minimal configuration. For more extensive customization, see the Configuration Reference.

Prerequisites

  • Docker: If you don't have Docker installed, download it from the official website: Docker installation Setup

Create docker-compose.yml:

  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
  networks:
    p-stream-network: 
      driver: bridge

Important:

  • Replace YourPasswordHere with your secure database password.
  • Generate a strong session secret and replace 32CharacterLongStringHere.

Start the Backend: Open a terminal in the directory containing docker-compose.yml and execute:

docker-compose up -d

Accessing Your Backend#

Your backend should be accessible on (YourPrivateIP):80. To share it outside your local network, you'll need to configure port forwarding or cloudflared tunnel.

Method 2 - Railway (Easy)#

Railway offers a 30-day free trial that includes a one-time $5 credit. After the trial, you receive $1 in usage credits for free each month.

Deploy on Railway

Login to your Railway account if you have one, otherwise create one here. - If you are signing up, then verify your account by clicking the link in the email Railway sends you. Ensure you setup your server location here to the closest one possible.

Click the Deploy on Railway button above.

Click on configure For the one that says Backend.

Fill in the required variable META_NAME the rest are optional and can be set later on.

The Deploy button at the bottom of the template should be active, click on it.

Once the Backend service has deployed, copy the URL from the Deployments page. (Might take a second for it to be available after the service has deployed)

Congratulations! You have deployed the backend, you can now set up the client.