Development/Testing Environment:
We strongly recommend using Docker Compose for development and testing environments. This provides a quick and easy setup with all dependencies included.
Production Environment:
For production deployments, we do not recommend using Docker Compose with Redis and PostgreSQL included. Instead:
  • Deploy Redis and PostgreSQL using cloud services (AWS, Google Cloud, etc.) or build your own infrastructure with high availability
  • Deploy only the Usertour application using the published Docker Hub image and configure Redis and PostgreSQL through environment variables

Docker Deployment Guide

Prerequisites

Before starting the deployment, make sure you have:
  • Docker and Docker Compose installed
  • Basic understanding of Docker concepts
  • Access to a server or local machine where you want to deploy Usertour

Installation Steps

  1. Install Docker and Docker Compose
  2. Configure Environment Variables Create a .env file or add environment variables to your docker-compose.yml. You can use this example file as a reference. For detailed environment variable documentation, see Environment Variables.
  3. Create Docker Compose Configuration Choose one of the following deployment options:

    Option 1: Local Development Setup

    This configuration includes all dependencies (PostgreSQL and Redis) in Docker containers:
    services:
      app:
        build:
          context: .
          dockerfile: Dockerfile
          platforms:
            - linux/amd64
        ports:
          - "8011:80"
        env_file:
          - .env
        environment:
          - PRISMA_BINARY_PLATFORM=linux-musl-openssl-3.0.x
        depends_on:
          postgres:
            condition: service_healthy
          redis:
            condition: service_healthy
        restart: always
    
      postgres:
        image: postgres:15-alpine
        environment:
          - POSTGRES_USER=postgres
          - POSTGRES_PASSWORD=postgres
          - POSTGRES_DB=usertour
        volumes:
          - postgres_data:/var/lib/postgresql/data
        healthcheck:
          test: ['CMD-SHELL', 'pg_isready -U postgres']
          interval: 10s
          timeout: 5s
          retries: 3
          start_period: 10s
        restart: always
    
      redis:
        image: redis:alpine
        volumes:
          - redis_data:/data
        healthcheck:
          test: ['CMD', 'redis-cli', 'ping']
          interval: 10s
          timeout: 5s
          retries: 3
          start_period: 10s
        restart: always
    
    volumes:
      postgres_data:
      redis_data:
    
    For local development, make sure to set these environment variables in your .env file:
    # Redis Configuration
    REDIS_HOST=redis
    REDIS_PORT=6379
    REDIS_PASS=
    
    # PostgreSQL Configuration
    DATABASE_URL=postgresql://postgres:postgres@postgres:5432/usertour?schema=usertour&sslmode=prefer
    

    Option 2: Production Setup

    For production environments, you’ll need to:
    1. Deploy Redis and PostgreSQL using cloud services (AWS, Google Cloud, etc.) or build your own infrastructure with high availability
    2. Update the .env file with your Redis and PostgreSQL configuration
    3. Use this simplified configuration:
    services:
      app:
        image: usertour/usertour:latest
        ports:
          - "8011:80"
        env_file:
          - .env
        environment:
          - PRISMA_BINARY_PLATFORM=linux-musl-openssl-3.0.x
        restart: always
    
  4. Start Usertour Run the following command in the directory containing your docker-compose.yml:
    docker-compose -f docker-compose.yml up -d
    
    If you’re using the latest version of Docker, use:
    docker compose -f docker-compose.yml up -d
    
    This command will:
    • Initialize the database
    • Run database migrations
    • Start the Usertour application on port 8011

Accessing Usertour

  1. Initial Access
    • Navigate to http://<your-server-ip>:8011 or your configured domain and port
    • Note: Usertour runs on HTTP by default. For HTTPS, you’ll need to set up a reverse proxy
  2. Default Login Credentials
    • Email: lisa@simpson.com
    • Password: secret42
    • Important: Change the password immediately after your first login

Next Steps

To enable content delivery and user tracking, install Usertour.js in your application. See the Usertour.js installation guide for detailed instructions.