diff --git a/Dockerfile b/Dockerfile index 2b3d1e3..1668095 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,10 @@ -FROM node:18-alpine +FROM node:20-alpine WORKDIR /app RUN apk add --no-cache python3 build-base ADD package.json pnpm-lock.yaml /app/ RUN npm install -g pnpm -RUN pnpm install +RUN pnpm install --prod COPY . /app/ -RUN cp config/config.example.toml config/config.toml # Always exit 0 here because TSC will fail while we're migrating to TypeScript but # not everything uses TypeScript RUN pnpm run build; exit 0 diff --git a/docker-compose.yml b/docker-compose.yml index 4a87aed..9677edd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,6 +10,9 @@ services: - mongo ports: - 3000:3000 + volumes: + # Set the correct path to the config folder + - ./gathio-docker:/app/config mongo: image: mongo:latest volumes: diff --git a/docs/running-gathio/installation.md b/docs/running-gathio/installation.md index 7be73c4..03c4416 100644 --- a/docs/running-gathio/installation.md +++ b/docs/running-gathio/installation.md @@ -91,11 +91,37 @@ the subject](https://www.linode.com/docs/web-servers/nginx/use-nginx-reverse-pro ## Docker The easiest way to run Gathio using Docker is by using the provided `docker-compose` configuration. -Ensure that the `node_modules` folder does not exist in the `gathio` directory before starting up the -Docker container. + +Ensure that the `node_modules` folder does not exist in the `gathio` directory before +starting up the Docker container. + +Create a directory on your system where you'll keep the Gathio configuration file. Copy the example +config file into this directory: + +``` +mkdir ~/docker/gathio-docker +cp config/config.example.toml ~/docker/gathio-docker/config.toml +``` + +Under the `volumes` section of the `docker-compose.yml` configuration, adjust the +configuration volume to match the folder you created: + +```dockerfile +volumes: + - '/home/username/docker/gathio-docker:/app/config +``` + +Adjust any settings in the config file, especially the MongoDB URL, which should read as follows for the standard Dockerfile config, and the email service if you want +to enable it: + +``` +mail_service = "nodemailer" +mongodb_url = "mongodb://mongo:27017/gathio" +``` + +Finally, start the Docker stack: ``` -cd gathio docker-compose up -d --build ```