fix(config): Update defaults and missing variables
This commit is contained in:
parent
4b2700f349
commit
b89c369824
188
README.md
188
README.md
@ -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
|
||||||
|
4
TODO.md
4
TODO.md
@ -1,5 +1,3 @@
|
|||||||
# TODOs
|
# TODOs
|
||||||
|
|
||||||
|
- [ ] Write a proper README.
|
||||||
- [ ] Add logo
|
|
||||||
- [ ] Optional S3 (allow for e.g. external minio install)
|
|
||||||
|
@ -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'
|
||||||
|
|
||||||
|
@ -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: []
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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:
|
||||||
|
@ -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 }}
|
@ -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
|
||||||
|
@ -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 %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
# Empty right now
|
@ -0,0 +1 @@
|
|||||||
|
# Empty right now
|
Loading…
Reference in New Issue
Block a user