Skip to content

Deployment

Rei edited this page Sep 17, 2025 · 2 revisions

Docker compose

Install Docker

Install Docker: https://docs.docker.com/engine/install/

Create compose.yml

Create compose.yml with content:

name: geeknote

services:
  web:
    image: ghcr.io/chloerei/geeknote:latest
    # platform: linux/amd64
    depends_on:
      - postgres
      - meilisearch
    volumes:
      - ./storage:/rails/storage
    environment:
      DATABASE_URL: postgres://postgres:postgres@postgres:5432
      # Without TLS
      FORCE_SSL: "false"
      # With TLS
      # TLS_DOMAIN: example.com
    env_file: .env
    ports:
      - "8080:80"
      # - "80:80"
      # - "443:443"

  postgres:
    image: postgres:17
    volumes:
      - ./postgres/data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres

  meilisearch:
    image: getmeili/meilisearch:v1.8
    environment:
      MEILI_NO_ANALYTICS: true
    volumes:
      - ./meili-data:/meili_data

Setting env

Create file .env with content:

# Can be generate by `openssl rand -hex 64`
SECRET_KEY_BASE=xxx

You can see more ENV in .env.example .

Boot server

Run command:

docker compose up -d

Now visit http://localhost:8080

Clone this wiki locally