fix(config): Update defaults and missing variables

This commit is contained in:
Laur Ivan 2022-12-08 01:51:55 +01:00
parent 4b2700f349
commit b89c369824
11 changed files with 114 additions and 171 deletions

188
README.md
View File

@ -10,151 +10,75 @@ None
All variables are listed below (see also `defaults/main.yml`). All variables are listed below (see also `defaults/main.yml`).
### Common variables
You need to specify:
- The `timezone`
- The location where torrents will be downloaded
- The location where different configuration files are stored
- The place where `docker-compose.yml` and the environment files are stored
```yml ```yml
timezone: 'Europe/Brussels' # defaults file for outline
torrent_downloads_volume: '/mnt/download'
outline_configuration_volume: '/mnt/config' outline_secret_key: 'changeme'
outline_utils_secret: 'changeme'
outline_setup_path: '~/outline' outline_setup_path: '~/outline'
``` outline_deployment: ''
If you need to install the containers with a specific user/group ID, then define: outline_port: 3000
outline_url: "http://localhost:{{ outline_port }}"
outline_force_https: "false"
outline_enable_updates: "false"
outline_cdn_url:
```yml outline_debug: "cache,presenters,events,emails,mailer,utils,multiplayer,server,services"
outline_uid:
outline_gid:
```
The role allows oyu to specify which components will be installed:
```yml outline_volume_base: "/mnt/outline"
deluge_enabled: true outline_volume_redis: "{{ outline_volume_base }}/redis"
sonarr_enabled: true outline_volume_db: "{{ outline_volume_base }}/db"
lidarr_enabled: true outline_volume_s3: "{{ outline_volume_base }}/s3"
jackett_enabled: true
```
### Deluge torrent oidc_client_id:
oidc_client_secret:
oidc_auth_uri:
oidc_token_uri:
oidc_userinfo_uri:
You can specify the image version and the log level: outline_google_client_id:
outline_google_client_secret:
outline_slack_client_id:
outline_slack_client_secret:
```yml # If the db_host is not "postgres", then we assume the
deluge_image_version: 'latest' # db is external and not spin up the docker container
deluge_loglevel: 'warning' outline_db_schema: "postgres"
``` outline_db_host: "postgres"
outline_db_port: "5432"
outline_db_user: "postgres"
outline_db_password: "changeme"
outline_db: "outline"
Deluge works on ports 6881 and 8112. You can change these ports: # By default, PostgreSQL is not secured. If you have a secure
# database instance, replace the content below with "enable".
outline_db_ssl: "disable"
```yml # Spin up the fake S3 only if "fake_s3" is true
deluge_host_port: 6881 outline_fake_s3: true
deluge_admin_port: 8112 outline_fake_s3_port: 4569
``` outline_aws_access_key_id:
outline_aws_secret_access_key:
outline_aws_region:
outline_aws_s3_upload_bucket_url: "http://s3:4569"
outline_aws_s3_upload_bucket_name: outline-bucket
outline_aws_s3_upload_max_size: "26214400"
outline_aws_s3_force_path_style: "true"
outline_aws_s3_acl: "private"
You can also overwrite the location where deluge's configuration is stored (e.g. if you already have deluge installed and you want to use the Ansible role): outline_smtp_host:
outline_smtp_port:
outline_smtp_username:
outline_smtp_password:
outline_smtp_from_email:
outline_smtp_reply_email:
```yml outline_team_logo_url:
deluge_config_volume: '{{ outline_configuration_volume }}/deluge'
```
### Radarr outline_language: 'en_US'
You can specify the image version and the port exposed:
```yml
radarr_image_version: 'latest'
radarr_host_port: 7878
```
You can also overwrite the location where radarr's configuration is stored (e.g. if you already have it installed and you want to use the Ansible role):
```yml
radarr_config_volume: '{{ outline_configuration_volume }}/radarr'
```
Radarr needs a place to copy the downloaded series:
```yml
radarr_series_volume: '/mnt/videos/Movies'
```
**Notes**:
- Depending on your settings, it will also rename your current series
- You need write access to that directory, so Sonarr can actually copy the files
### Sonarr
You can specify the image version and the port exposed:
```yml
sonarr_image_version: 'latest'
sonarr_host_port: 8989
```
You can also overwrite the location where sonarr's configuration is stored (e.g. if you already have it installed and you want to use the Ansible role):
```yml
sonarr_config_volume: '{{ outline_configuration_volume }}/sonarr'
```
Sonarr needs a place to copy the downloaded series:
```yml
sonarr_series_volume: '/mnt/videos/Series'
```
**Notes**:
- Depending on your settings, it will also rename your current series
- You need write access to that directory, so Sonarr can actually copy the files
# Lidarr
You can specify the image version and the port exposed:
```yml
lidarr_image_version: 'latest'
lidarr_host_port: 8686
```
You can also overwrite the location where lidarr's configuration is stored (e.g. if you already have it installed and you want to use the Ansible role):
```yml
lidarr_config_volume: '{{ outline_configuration_volume }}/lidarr'
```
Lidarr needs a place to copy the downloaded music:
```yml
lidarr_music_upload_volume: '/mnt/music/Reference'
```
You will need to add a reference to your music collection (so you don't download what you already have). The layout below allows for multiple collections:
```yml
lidarr_music_volumes:
- {path: '/mnt/music/Sonos', alias: 'sonos' }
- {path: '/mnt/music/Audiophile', alias: 'audiophile' }
- {path: '/mnt/music/Raw', alias: 'raw' }
```
The `path` is the actual directory where the collection is located and the `alias` is the internal mapping name in Docker.
# Jakett
You can specify the image version, the port exposed and to autoupdate:
```yml
jackett_image_version: 'latest'
jackett_auto_update: true
jackett_host_port: 9117
```
You can also overwrite the location where jackett's configuration is stored (e.g. if you already have it installed and you want to use the Ansible role):
```yml
jackett_config_volume: '{{ outline_configuration_volume }}/jackett'
``` ```
## Dependencies ## Dependencies

View File

@ -1,5 +1,3 @@
# TODOs # TODOs
- [ ] Write a proper README.
- [ ] Add logo
- [ ] Optional S3 (allow for e.g. external minio install)

View File

@ -6,11 +6,16 @@ outline_utils_secret: 'changeme'
outline_setup_path: '~/outline' outline_setup_path: '~/outline'
outline_deployment: ''
outline_port: 3000 outline_port: 3000
outline_url: "http://localhost:{{ outline_port }}" outline_url: "http://localhost:{{ outline_port }}"
outline_force_https: "false"
outline_enable_updates: "false"
outline_cdn_url: outline_cdn_url:
outline_debug: "cache,presenters,events,emails,mailer,utils,multiplayer,server,services"
outline_volume_base: "/mnt/outline" outline_volume_base: "/mnt/outline"
outline_volume_redis: "{{ outline_volume_base }}/redis" outline_volume_redis: "{{ outline_volume_base }}/redis"
outline_volume_db: "{{ outline_volume_base }}/db" outline_volume_db: "{{ outline_volume_base }}/db"
@ -22,18 +27,27 @@ oidc_auth_uri:
oidc_token_uri: oidc_token_uri:
oidc_userinfo_uri: oidc_userinfo_uri:
outline_google_client_id:
outline_google_client_secret:
outline_slack_client_id:
outline_slack_client_secret:
# If the db_host is not "postgres", then we assume the # If the db_host is not "postgres", then we assume the
# db is external and not spin up the docker container # db is external and not spin up the docker container
outline_db_schema: "postgres" outline_db_schema: "postgres"
outline_db_host: "postgres" outline_db_host: "postgres"
outlinr_db_port: "5432" outline_db_port: "5432"
outline_db_user: "postgres" outline_db_user: "postgres"
outline_db_password: "changeme" outline_db_password: "changeme"
outline_db: "outline" outline_db: "outline"
# By default, PostgreSQL is not secured. If you have a secure
# database instance, replace the content below with "enable".
outline_db_ssl: "disable"
# Spin up the fake S3 only if "fake_s3" is true # Spin up the fake S3 only if "fake_s3" is true
outline_fake_s3: true outline_fake_s3: true
outline_fake_s3_port: outline_fake_s3_port: 4569
outline_aws_access_key_id: outline_aws_access_key_id:
outline_aws_secret_access_key: outline_aws_secret_access_key:
outline_aws_region: outline_aws_region:
@ -53,4 +67,3 @@ outline_smtp_reply_email:
outline_team_logo_url: outline_team_logo_url:
outline_language: 'en_US' outline_language: 'en_US'

View File

@ -2,7 +2,7 @@ galaxy_info:
author: Laur Ivan author: Laur Ivan
namespace: laurivan namespace: laurivan
role_name: outline role_name: outline
description: Sonarr, Lidarr, Deluge and Jackett via Docker description: Outline Docker
license: MIT license: MIT
min_ansible_version: "2.4" min_ansible_version: "2.4"
@ -26,12 +26,9 @@ galaxy_info:
- all - all
galaxy_tags: galaxy_tags:
- sonarr - outline
- lidarr - document
- deluge - wiki
- jackett
- media
- grabber
- docker - docker
dependencies: [] dependencies: []

View File

@ -21,11 +21,8 @@
group: "{% if outline_gid %}{{ outline_gid }}{% else %}{{ ansible_effective_group_id }}{% endif %}" group: "{% if outline_gid %}{{ outline_gid }}{% else %}{{ ansible_effective_group_id }}{% endif %}"
mode: "0750" mode: "0750"
with_items: with_items:
- "{{ deluge_config_volume }}" - "{{ outline_config_volume }}"
- "{{ radarr_config_volume }}"
- "{{ sonarr_config_volume }}"
- "{{ lidarr_config_volume }}"
- "{{ jackett_config_volume }}"
tags: tags:
- configuration - configuration
become: true become: true
@ -38,9 +35,8 @@
group: "{% if outline_gid %}{{ outline_gid }}{% else %}{{ ansible_effective_group_id }}{% endif %}" group: "{% if outline_gid %}{{ outline_gid }}{% else %}{{ ansible_effective_group_id }}{% endif %}"
mode: "0750" mode: "0750"
with_items: with_items:
- "{{ radarr_upload_volume }}" - "{{ outline_config_volume }}"
- "{{ sonarr_upload_volume }}" - "{{ outline_setup_path }}"
- "{{ lidarr_upload_volume }}"
tags: tags:
- configuration - configuration
become: true become: true
@ -52,11 +48,11 @@
mode: '0640' mode: '0640'
loop: loop:
- "docker-compose.yml" - "docker-compose.yml"
- "env.deluge.conf" - "env.outline.conf"
- "env.radarr.conf" - "env.db.conf"
- "env.sonarr.conf" - "env.oidc.conf"
- "env.lidarr.conf" - "env.redis.conf"
- "env.jackett.conf" - "env.s3.conf"
tags: tags:
- configuration - configuration

View File

@ -46,7 +46,7 @@ services:
image: lphoward/fake-s3 image: lphoward/fake-s3
env_file: env_file:
- "{{ outline_setup_path }}/env.s3.conf" - "{{ outline_setup_path }}/env.s3.conf"
{% if outline_s3_port %} {% if outline_fake_s3_port %}
ports: ports:
- {{ outline_fake_s3_port }}:4569 - {{ outline_fake_s3_port }}:4569
{% endif %} {% endif %}
@ -58,11 +58,12 @@ services:
outline: outline:
image: outlinewiki/outline:latest image: outlinewiki/outline:latest
command: sh -c "yarn sequelize:migrate --env production-ssl-disabled && yarn start" command: sh -c "yarn start"
# command: sh -c "yarn sequelize:migrate --env production-ssl-disabled && yarn start"
env_file: env_file:
- ./env.outline.conf - ./env.outline.conf
- ./env.oidc.conf - ./env.oidc.conf
restart: always #restart: never
ports: ports:
- {{ outline_port }}:3000 - {{ outline_port }}:3000
depends_on: depends_on:

View File

@ -2,3 +2,4 @@ POSTGRES_USER={{ outline_db_user }}
POSTGRES_PASSWORD={{ outline_db_password }} POSTGRES_PASSWORD={{ outline_db_password }}
POSTGRES_DB={{ outline_db }} POSTGRES_DB={{ outline_db }}
PGSSLMODE={{ outline_db_ssl }}

View File

@ -9,7 +9,7 @@ OIDC_USERINFO_URI={{ oidc_userinfo_uri }}
# Specify which claims to derive user information from # Specify which claims to derive user information from
# Supports any valid JSON path with the JWT payload # Supports any valid JSON path with the JWT payload
OIDC_USERNAME_CLAIM=preferred_username OIDC_USERNAME_CLAIM={{ oidc_username_claim }}
# Display name for OIDC authentication # Display name for OIDC authentication
OIDC_DISPLAY_NAME=OpenID OIDC_DISPLAY_NAME=OpenID

View File

@ -6,6 +6,8 @@
SECRET_KEY={{ outline_secret_key }} SECRET_KEY={{ outline_secret_key }}
UTILS_SECRET={{ outline_utils_secret }} UTILS_SECRET={{ outline_utils_secret }}
DEPLOYMENT={{ outline_deployment }}
DATABASE_URL={{ outline_db_schema }}://{{ outline_db_user }}:{{ outline_db_password }}@{{outline_db_host}}:{{ outline_db_port }}/{{ outline_db }} DATABASE_URL={{ outline_db_schema }}://{{ outline_db_user }}:{{ outline_db_password }}@{{outline_db_host}}:{{ outline_db_port }}/{{ outline_db }}
DATABASE_URL_TEST={{ outline_db_schema }}://{{ outline_db_user }}:{{ outline_db_password }}@{{outline_db_host}}:{{ outline_db_port }}/{{ outline_db }}_test DATABASE_URL_TEST={{ outline_db_schema }}://{{ outline_db_user }}:{{ outline_db_password }}@{{outline_db_host}}:{{ outline_db_port }}/{{ outline_db }}_test
REDIS_URL=redis://redis:6379 REDIS_URL=redis://redis:6379
@ -20,31 +22,36 @@ CDN_URL={{ outline_cdn_url }}
# enforce (auto redirect to) https in production, (optional) default is true. # enforce (auto redirect to) https in production, (optional) default is true.
# set to false if your SSL is terminated at a loadbalancer, for example # set to false if your SSL is terminated at a loadbalancer, for example
FORCE_HTTPS=true FORCE_HTTPS={{ outline_force_https }}
ENABLE_UPDATES=true ENABLE_UPDATES={{ outline_enable_updates }}
DEBUG=cache,presenters,events,emails,mailer,utils,multiplayer,server,services DEBUG={{ outline_debug }}
{% if outline_slack_client_id %}
# Third party signin credentials (at least one is required) # Third party signin credentials (at least one is required)
SLACK_KEY=get_a_key_from_slack SLACK_CLIENT_ID={{ outline_slack_client_id }}
SLACK_SECRET=get_the_secret_of_above_key SLACK_CLIENT_SECRET={{ outline_slack_client_secret }}
{% endif %}
# To configure Google auth, you'll need to create an OAuth Client ID at # To configure Google auth, you'll need to create an OAuth Client ID at
# => https://console.cloud.google.com/apis/credentials # => https://console.cloud.google.com/apis/credentials
# #
# When configuring the Client ID, add an Authorized redirect URI: # When configuring the Client ID, add an Authorized redirect URI:
# https://<your Outline URL>/auth/google.callback # https://<your Outline URL>/auth/google.callback
GOOGLE_CLIENT_ID= {% if outline_google_client_id %}
GOOGLE_CLIENT_SECRET= GOOGLE_CLIENT_ID={{ outline_google_client_id }}
GOOGLE_CLIENT_SECRET={{ outline_google_client_secret }}
# Comma separated list of domains to be allowed (optional) # Comma separated list of domains to be allowed (optional)
# If not set, all Google apps domains are allowed by default # If not set, all Google apps domains are allowed by default
GOOGLE_ALLOWED_DOMAINS= GOOGLE_ALLOWED_DOMAINS=
{% endif %}
# Third party credentials (optional) # Third party credentials (optional)
SLACK_VERIFICATION_TOKEN= SLACK_VERIFICATION_TOKEN=
SLACK_APP_ID=A0XXXXXXX SLACK_APP_ID=
SLACK_MESSAGE_ACTIONS=true SLACK_MESSAGE_ACTIONS=
GOOGLE_ANALYTICS_ID= GOOGLE_ANALYTICS_ID=
SENTRY_DSN= SENTRY_DSN=
@ -79,5 +86,9 @@ TEAM_LOGO={{ outline_team_logo_url }}
# percentage translated. # percentage translated.
DEFAULT_LANGUAGE={{ outline_language }} DEFAULT_LANGUAGE={{ outline_language }}
{% if outline_db_ssl %}
PGSSLMODE={{ outline_db_ssl }}
{% endif %}

View File

@ -0,0 +1 @@
# Empty right now

View File

@ -0,0 +1 @@
# Empty right now