1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-08-05 05:05:17 +02:00

feat(devsecops): updated documentation to reference new configuration

This commit is contained in:
Corbin Whitton 2025-07-20 21:47:28 -06:00
parent bc9a9a631d
commit 324506ea10
3 changed files with 57 additions and 15 deletions

View file

@ -2,7 +2,7 @@
Docker is the preferred way to run AdventureLog on your local machine. It is a lightweight containerization technology that allows you to run applications in isolated environments called containers. Docker is the preferred way to run AdventureLog on your local machine. It is a lightweight containerization technology that allows you to run applications in isolated environments called containers.
> **Note**: This guide mainly focuses on installation with a Linux-based host machine, but the steps are similar for other operating systems. > **Note**: This guide mainly focuses on installation with a Linux-based host machine, but the steps are similar for other operating systems or when using Podman.
## Prerequisites ## Prerequisites
@ -29,16 +29,7 @@ If running on an ARM based machine, you will need to use a different PostGIS Ima
## Configuration ## Configuration
The `.env` file contains all the configuration settings for your AdventureLog instance. Heres a breakdown of each section: The `docker-compose.yml` file contains all the configuration settings for your AdventureLog instance. Heres a breakdown of each environment variable (at the top of the file):
### 🌐 Frontend (web)
| Name | Required | Description | Default Value |
| ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| `PUBLIC_SERVER_URL` | Yes | Used by the frontend SSR server to connect to the backend. Almost every user user will **never have to change this from default**! | `http://server:8000` |
| `ORIGIN` | Sometimes | Needed only if not using HTTPS. Set it to the domain or IP you'll use to access the frontend. | `http://localhost:8015` |
| `BODY_SIZE_LIMIT` | Yes | Maximum upload size in bytes. | `Infinity` |
| `FRONTEND_PORT` | Yes | Port that the frontend will run on inside Docker. | `8015` |
### 🐘 PostgreSQL Database ### 🐘 PostgreSQL Database
@ -53,6 +44,7 @@ The `.env` file contains all the configuration settings for your AdventureLog in
| Name | Required | Description | Default Value | | Name | Required | Description | Default Value |
| ----------------------- | -------- | ---------------------------------------------------------------------------------- | --------------------------------------------- | | ----------------------- | -------- | ---------------------------------------------------------------------------------- | --------------------------------------------- |
| `PHHOST` | Yes | The hostname of the postgres container. | `pg` |
| `SECRET_KEY` | Yes | Django secret key. Change this in production! | `changeme123` | | `SECRET_KEY` | Yes | Django secret key. Change this in production! | `changeme123` |
| `DJANGO_ADMIN_USERNAME` | Yes | Default Django admin username. | `admin` | | `DJANGO_ADMIN_USERNAME` | Yes | Default Django admin username. | `admin` |
| `DJANGO_ADMIN_PASSWORD` | Yes | Default Django admin password. | `admin` | | `DJANGO_ADMIN_PASSWORD` | Yes | Default Django admin password. | `admin` |
@ -63,6 +55,15 @@ The `.env` file contains all the configuration settings for your AdventureLog in
| `BACKEND_PORT` | Yes | Port that the backend will run on inside Docker. | `8016` | | `BACKEND_PORT` | Yes | Port that the backend will run on inside Docker. | `8016` |
| `DEBUG` | No | Should be `False` in production. | `False` | | `DEBUG` | No | Should be `False` in production. | `False` |
### 🌐 Frontend (web)
| Name | Required | Description | Default Value |
| ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| `PUBLIC_SERVER_URL` | Yes | Used by the frontend SSR server to connect to the backend. Almost every user user will **never have to change this from default**! | `http://backend:8000` |
| `ORIGIN` | Sometimes | Needed only if not using HTTPS. Set it to the domain or IP you'll use to access the frontend. | `http://localhost:8015` |
| `BODY_SIZE_LIMIT` | Yes | Maximum upload size in bytes. | `Infinity` |
| `FRONTEND_PORT` | Yes | Port that the frontend will run on inside Docker. | `8015` |
## Optional Configuration ## Optional Configuration
- [Disable Registration](../configuration/disable_registration.md) - [Disable Registration](../configuration/disable_registration.md)
@ -71,9 +72,50 @@ The `.env` file contains all the configuration settings for your AdventureLog in
- [Immich Integration](../configuration/immich_integration.md) - [Immich Integration](../configuration/immich_integration.md)
- [Umami Analytics](../configuration/analytics.md) - [Umami Analytics](../configuration/analytics.md)
## Additional Configuration Methods
### Secret Files
If you're not comfortable storing sensitive values like `SECRET_KEY` or any `PASSWORD` directly in the environment file, you can either use Docker secrets or bind-mount a text file containing the secret value. In this case, append `_FILE` to the environment variable name and set its value to the file path.
For example, instead of:
```yml
SECRET_KEY: your_secret_value
```
You can use:
```yml
SECRET_KEY_FILE: /run/secrets/secret_key # For a docker secret
SECRET_KEY_FILE: /some/directory/secret_key # For a volume bind mount
```
Make sure the any secret files are **not** committed to version control to keep your secrets safe.
### .env File
If you prefer not to hardcode sensitive values like `SECRET_KEY` or any `PASSWORD` directly in your `docker-compose.yml` file, you can reference them from a `.env` file. Docker Compose will automatically read this file and substitute the values into your configuration. An example .env file is found [on GitHub](https://github.com/seanmorley15/AdventureLog/blob/main/.env.example).
For example, in your `.env` file:
```
SECRET\_KEY=your\_secret\_value
````
And in your `docker-compose.yml`:
```yaml
environment:
- SECRET_KEY=${SECRET_KEY}
````
Make sure the `.env` file is **not** committed to version control to keep your secrets safe.
## Running the Containers ## Running the Containers
Once you've configured `.env`, you can start AdventureLog with: Once you've configured `docker-compose.yml`, you can start AdventureLog with:
```bash ```bash
docker compose up -d docker compose up -d

View file

@ -5,7 +5,7 @@ Install **AdventureLog** in seconds using our automated script.
## 🧪 One-Liner Install ## 🧪 One-Liner Install
```bash ```bash
curl -sSL https://get.adventurelog.app | bash bash -c "$(curl -sSL https://get.adventurelog.app)"
``` ```
This will: This will:
@ -27,7 +27,7 @@ This will:
The script automatically: The script automatically:
1. Verifies Docker is installed and running 1. Verifies Docker is installed and running
2. Downloads `docker-compose.yml` and `.env` 2. Downloads `docker-compose.yml`
3. Prompts you for domain and port settings 3. Prompts you for domain and port settings
4. Waits for services to start 4. Waits for services to start
5. Prints success info with next steps 5. Prints success info with next steps

View file

@ -4,4 +4,4 @@ Traefik is a modern HTTP reverse proxy and load balancer that makes deploying mi
AdventureLog has a built-in Traefik configuration that makes it easy to deploy and manage your AdventureLog instance. AdventureLog has a built-in Traefik configuration that makes it easy to deploy and manage your AdventureLog instance.
The most recent version of the Traefik `docker-compose.yml` file can be found in the [AdventureLog GitHub repository](https://github.com/seanmorley15/AdventureLog/blob/main/docker-compose-traefik.yaml). The most recent version of [docker-compose.yml](https://github.com/seanmorley15/AdventureLog/blob/main/docker-compose.yml) file includes example Traefik container labels. To deploy Traefik itself, consult the [Traefik v3.x documentation](https://doc.traefik.io/traefik/).