Skip to Content
Getting StartedGetting Started

Getting Started

This guide will help you set up LetterSpace quickly on your own infrastructure.

Installation

We’ve made LetterSpace for simplicity and ease of use. The easiest way to get started is by using docker-compose.

Using Docker Compose

  1. Create a docker-compose.yaml file:

    Create a file named docker-compose.yaml with the following content:

    services: db: image: postgres:17 # Use your preferred Postgres version restart: always environment: POSTGRES_USER: user # Change to a secure user POSTGRES_PASSWORD: password # Change to a secure password POSTGRES_DB: letterspace volumes: - postgres_data:/var/lib/postgresql/data networks: - app_network backend: image: ghcr.io/dcodesdev/letterspace:0 pull_policy: always restart: always depends_on: - db ports: - "5000:5000" # Expose backend on port 5000 environment: # Make sure this matches the db service credentials DATABASE_URL: "postgresql://user:password@db:5432/letterspace?schema=public" JWT_SECRET: your_super_secret_jwt_key # Change to a secure secret networks: - app_network volumes: postgres_data: driver: local networks: app_network: driver: bridge
⚠️

Replace POSTGRES_USER, POSTGRES_PASSWORD, and JWT_SECRET with your own secure values before running.

  1. Run Docker Compose:

    Navigate to the directory where you saved the docker-compose.yaml file and run:

    docker-compose up -d

That’s it! LetterSpace backend should now be running and accessible on port 5000 of your host machine.

You can access the LetterSpace dashboard directly at http://localhost:5000 if running locally, or proceed to set up a reverse proxy.

Reverse Proxy (Optional)

If you don’t already have a reverse proxy, you can follow along.

To access the LetterSpace dashboard securely via a domain name (e.g., https://letterspace.yourdomain.com), you can use a reverse proxy like Nginx or Caddy.

We’ll use Caddy as an example. Caddy is easy to use and automatically manages SSL certificates.

Install Caddy on Ubuntu

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy

For other Linux distributions, check the official Caddy installation documentation.

DNS Configuration

Configure your domain’s DNS records. Add an A record pointing your desired subdomain (e.g., newsletter) to the public IP address of your server.

Configure Caddy

Create or edit Caddy’s configuration file:

sudo nano /etc/caddy/Caddyfile

Add the following configuration:

letterspace.yourdomain.com { # Replace with your actual domain reverse_proxy localhost:5000 }

Replace letterspace.yourdomain.com with your actual domain. Caddy will automatically provision an SSL certificate for it.

Start Caddy

Restart Caddy to apply your changes:

sudo systemctl restart caddy

Check the status to ensure it’s running:

sudo systemctl status caddy

Wait a minute or two for Caddy to provision the SSL certificate, then access the LetterSpace dashboard securely at https://letterspace.yourdomain.com.

Last updated on