From 681cdc3214202be4c3505f35686a130feafb2f48 Mon Sep 17 00:00:00 2001 From: Nemo Date: Sun, 3 Dec 2017 20:22:14 +0530 Subject: [PATCH] Switch to mongorocks --- docker/conf/headphones.ini | 158 +++++++++++++++++++++++++++++++++++++ docker/conf/wiki.yml | 38 ++++----- docker/data.tf | 9 +++ docker/images.tf | 12 +++ docker/main.tf | 59 ++++++++++---- docker/variables.tf | 5 ++ docker/volumes.tf | 7 +- main.tf | 1 + variables.tf | 6 +- 9 files changed, 258 insertions(+), 37 deletions(-) create mode 100644 docker/conf/headphones.ini diff --git a/docker/conf/headphones.ini b/docker/conf/headphones.ini new file mode 100644 index 0000000..3e41170 --- /dev/null +++ b/docker/conf/headphones.ini @@ -0,0 +1,158 @@ +[General] +nzb_downloader = 0 +cue_split = 1 +libraryscan = 1 +music_encoder = 0 +open_magnet_links = 0 +preferred_quality = 0 +customport = 5000 +download_scan_interval = 5 +preferred_bitrate = 320 +destination_dir = /music +encodervbrcbr = cbr +xldprofile = "" +delete_lossless_files = 1 +encoderquality = 2 +autowant_all = 0 +ignored_words = "WMA,FLAC" +freeze_db = 0 +encoder_multicore_count = 0 +keep_torrent_files = 0 +http_root = / +download_dir = "" +http_proxy = 1 +launch_browser = 0 +http_username = "" +lossless_destination_dir = "" +mb_ignore_age = 365 +file_underscores = 0 +cue_split_flac_path = "" +lossless_bitrate_from = 0 +do_not_override_git_branch = 0 +include_extras = 0 +samplingfrequency = 44100 +http_host = 0.0.0.0 +album_art_format = cover +encoder_path = "" +hpuser = "" +detect_bitrate = 0 +enable_https = 0 +check_github = 1 +custompass = "" +mirror = musicbrainz.org +api_enabled = 0 +correct_metadata = 1 +customuser = "" +cue_split_shntool_path = /usr/bin/shntool +lastfm_username = captn3m0 +autowant_upcoming = 1 +config_version = 5 +check_github_interval = 360 +customauth = 0 +file_permissions = 0644 +prefer_torrents = 1 +encoderoutputformat = mp3 +search_interval = 1440 +preferred_bitrate_low_buffer = 0 +ignore_clean_releases = 0 +http_password = "" +usenet_retention = 1500 +add_album_art = 1 +headphones_indexer = 0 +wait_until_release_date = 0 +rename_files = 0 +file_format = $Track $Artist - $Album [$Year] - $Title +customhost = localhost +interface = default +folder_format = $Artist/$Album [$Year] +move_files = 1 +cleanup_files = 1 +replace_existing_folders = 0 +preferred_bitrate_allow_lossless = 0 +embed_album_art = 1 +check_github_on_startup = 1 +http_port = 8181 +download_torrent_dir = /downloads +folder_permissions = 0755 +official_releases_only = 0 +magnet_links = 0 +log_dir = /config/logs +update_db_interval = 24 +git_path = "" +required_words = "" +advancedencoder = "" +numberofseeders = 5 +torrentblackhole_dir = "" +cache_dir = /config/cache +blackhole = 0 +libraryscan_interval = 300 +keep_nfo = 0 +preferred_bitrate_high_buffer = 0 +https_cert = /config/server.crt +hppass = "" +customsleep = 1 +api_key = "" +encoderlossless = 1 +torrent_downloader = 1 +torrent_removal_interval = 720 +blackhole_dir = "" +keep_original_folder = 1 +extras = "" +autowant_manually_added = 1 +encoder_multicore = 0 +encoderfolder = "" +preferred_words = "" +https_key = /config/server.key +encoder = ffmpeg +git_user = rembo10 +bitrate = 192 +music_dir = /music +auto_add_artists = 1 +git_branch = master +embed_lyrics = 0 +lossless_bitrate_to = 0 +keep_torrent_files_dir = "" +file_permissions_enabled = 1 +album_art_max_width = 512 +album_art_min_width = 512 +soft_chroot = "" +rename_unprocessed = 1 +rename_frozen = 1 +folder_permissions_enabled = 1 +do_not_process_unmatched = 0 +[Subsonic] +subsonic_host = "" +subsonic_password = "" +subsonic_enabled = 0 +subsonic_username = "" +[Email] +email_onsnatch = 0 +email_smtp_password = "" +email_tls = 0 +email_smtp_port = 25 +email_smtp_server = "" +email_enabled = 0 +email_smtp_user = "" +email_ssl = 0 +email_to = "" +email_from = "" +[Advanced] +verify_ssl_cert = 1 +ignored_files = , +journal_mode = wal +album_completion_pct = 80 +ignored_folders = , +cache_sizemb = 32 +[Piratebay] +piratebay_ratio = 0.1 +piratebay = 1 +piratebay_proxy_url = https://duckingproxy.eu/ +[MPC] +mpc_enabled = 0 +[XBMC] +xbmc_username = "" +xbmc_host = http://192.168.1.111:8080 +xbmc_enabled = 1 +xbmc_update = 1 +xbmc_password = "" +xbmc_notify = 1 diff --git a/docker/conf/wiki.yml b/docker/conf/wiki.yml index c415b0a..fb156dc 100644 --- a/docker/conf/wiki.yml +++ b/docker/conf/wiki.yml @@ -63,7 +63,7 @@ auth: local: enabled: true google: - enabled: true + enabled: false clientId: GOOGLE_CLIENT_ID clientSecret: GOOGLE_CLIENT_SECRET @@ -72,40 +72,40 @@ auth: # --------------------------------------------------------------------- # Use a long and unique random string (256-bit keys are perfect!) -sessionSecret: 83941e2642ff1feafa410f35497c4ac6bc28d3226ca438225319ae1c9e670cdb +sessionSecret: $(SESSION_SECRET) # --------------------------------------------------------------------- # Database Connection String # --------------------------------------------------------------------- -db: mongodb://192.168.1.111:27017/wiki +db: mongodb://mongorocks:27017/wiki # --------------------------------------------------------------------- # Git Connection Info # --------------------------------------------------------------------- -git: - url: https://github.com/Organization/Repo - branch: master - auth: +# git: +# url: https://github.com/Organization/Repo +# branch: master +# auth: - # Type: basic or ssh - type: ssh +# # Type: basic or ssh +# type: ssh - # Only for Basic authentication: - username: marty - password: MartyMcFly88 +# # Only for Basic authentication: +# username: marty +# password: MartyMcFly88 - # Only for SSH authentication: - privateKey: /etc/wiki/keys/git.pem +# # Only for SSH authentication: +# privateKey: /etc/wiki/keys/git.pem - sslVerify: true +# sslVerify: true - # Default email to use as commit author - serverEmail: marty@example.com +# # Default email to use as commit author +# serverEmail: marty@example.com - # Whether to use user email as author in commits - showUserEmail: true +# # Whether to use user email as author in commits +# showUserEmail: true # --------------------------------------------------------------------- # Features diff --git a/docker/data.tf b/docker/data.tf index e07a757..73bb2ab 100644 --- a/docker/data.tf +++ b/docker/data.tf @@ -8,6 +8,10 @@ data "docker_registry_image" "mongo" { name = "mvertes/alpine-mongo:3.4.10-0" } +data "docker_registry_image" "mongorocks" { + name = "jadsonlourenco/mongo-rocks:latest" +} + # Leave all other apps at latesst data "docker_registry_image" "emby" { @@ -60,3 +64,8 @@ data "docker_registry_image" "muximux" { data "docker_registry_image" "ubooquity" { name = "linuxserver/ubooquity:latest" } + + +data "docker_registry_image" "headerdebug" { + name = "brndnmtthws/nginx-echo-headers:latest" +} diff --git a/docker/images.tf b/docker/images.tf index 33b0334..43fb76f 100644 --- a/docker/images.tf +++ b/docker/images.tf @@ -53,6 +53,12 @@ resource "docker_image" "mongo" { pull_triggers = ["${data.docker_registry_image.mongo.sha256_digest}"] } +# Attempting to use mongorocks to work around reboot issue +resource "docker_image" "mongorocks" { + name = "${data.docker_registry_image.mongorocks.name}" + pull_triggers = ["${data.docker_registry_image.mongorocks.sha256_digest}"] +} + resource "docker_image" "headphones" { name = "${data.docker_registry_image.headphones.name}" pull_triggers = ["${data.docker_registry_image.headphones.sha256_digest}"] @@ -67,3 +73,9 @@ resource "docker_image" "ubooquity" { name = "${data.docker_registry_image.ubooquity.name}" pull_triggers = ["${data.docker_registry_image.ubooquity.sha256_digest}"] } + + +resource "docker_image" "headerdebug" { + name = "${data.docker_registry_image.headerdebug.name}" + pull_triggers = ["${data.docker_registry_image.headerdebug.sha256_digest}"] +} diff --git a/docker/main.tf b/docker/main.tf index 17add16..94d2a33 100644 --- a/docker/main.tf +++ b/docker/main.tf @@ -359,18 +359,38 @@ resource "docker_container" "airsonic" { labels { "traefik.frontend.rule" = "Host:airsonic.in.bb8.fun,airsonic.bb8.fun" - "traefik.frontend.passHostHeader" = "false" + "traefik.frontend.passHostHeader" = "true" "traefik.port" = 4040 "traefik.enable" = "true" "traefik.frontend.headers.SSLTemporaryRedirect" = "true" "traefik.frontend.headers.STSSeconds" = "2592000" "traefik.frontend.headers.STSIncludeSubdomains" = "false" - "traefik.frontend.headers.contentTypeNosniff" = "true" - "traefik.frontend.headers.browserXSSFilter" = "true" "traefik.frontend.headers.customresponseheaders" = "X-Powered-By:Allomancy,X-Server:Blackbox" } } + +resource "docker_container" "headerdebug" { + name = "headerdebug" + image = "${docker_image.headerdebug.latest}" + + restart = "unless-stopped" + destroy_grace_seconds = 30 + must_run = true + + labels { + "traefik.frontend.rule" = "Host:debug.in.bb8.fun" + "traefik.frontend.passHostHeader" = "true" + "traefik.port" = 8080 + "traefik.enable" = "true" + "traefik.frontend.headers.SSLTemporaryRedirect" = "true" + "traefik.frontend.headers.STSSeconds" = "2592000" + "traefik.frontend.headers.STSIncludeSubdomains" = "false" + "traefik.frontend.headers.customresponseheaders" = "X-Powered-By:Allomancy,X-Server:Blackbox" + # "traefik.frontend.headers.customrequestheaders" = "X-Forwarded-Proto:https" + } +} + resource "docker_container" "sickrage" { name = "sickrage" image = "${docker_image.sickrage.latest}" @@ -409,8 +429,8 @@ resource "docker_container" "sickrage" { } env = [ + "PUID=1004", "PGID=1003", - "PUID=1000", "TZ=Asia/Kolkata", ] } @@ -439,6 +459,11 @@ resource "docker_container" "headphones" { container_path = "/music" } + upload { + content = "${file("${path.module}/conf/headphones.ini")}" + file = "/config/config.ini" + } + labels { "traefik.frontend.auth.basic" = "${var.basic_auth}" "traefik.port" = 8181 @@ -561,32 +586,34 @@ resource "docker_container" "wiki" { "traefik.frontend.headers.customresponseheaders" = "X-Powered-By:Allomancy,X-Server:Blackbox" } + links = ["mongorocks"] + env = [ "WIKI_ADMIN_EMAIL=me@captnemo.in", + "SESSION_SECRET=${var.wiki_session_secret}" ] } -resource "docker_container" "mongo" { - name = "mongo" - image = "${docker_image.mongo.latest}" +resource "docker_container" "mongorocks" { + name = "mongorocks" + image = "${docker_image.mongorocks.latest}" restart = "unless-stopped" - destroy_grace_seconds = 10 + destroy_grace_seconds = 30 must_run = true memory = 256 volumes { - volume_name = "${docker_volume.mongo_data_volume.name}" + volume_name = "${docker_volume.mongorocks_data_volume.name}" container_path = "/data/db" - host_path = "${docker_volume.mongo_data_volume.mountpoint}" - } - - ports { - internal = 27017 - external = 27017 - ip = "192.168.1.111" + host_path = "${docker_volume.mongorocks_data_volume.mountpoint}" } + env = [ + "AUTH=no", + "DATABASE=wiki", + "OPLOG_SIZE=50", + ] } resource "docker_container" "muximux" { diff --git a/docker/variables.tf b/docker/variables.tf index 51c90de..18b4782 100644 --- a/docker/variables.tf +++ b/docker/variables.tf @@ -41,3 +41,8 @@ variable "xpoweredby" { variable "refpolicy" { default = "no-referrer" } + + +variable "wiki_session_secret" { + type = "string" +} diff --git a/docker/volumes.tf b/docker/volumes.tf index 7f65745..b6d40ec 100644 --- a/docker/volumes.tf +++ b/docker/volumes.tf @@ -8,4 +8,9 @@ resource "docker_volume" "gitea_volume" { resource "docker_volume" "mongo_data_volume" { name = "mongo_data_volume" -} \ No newline at end of file +} + +resource "docker_volume" "mongorocks_data_volume" { + name = "mongorocks_data_volume" +} + diff --git a/main.tf b/main.tf index e4095fe..5793816 100644 --- a/main.tf +++ b/main.tf @@ -26,4 +26,5 @@ module "docker" { mysql_root_password = "${var.mysql_root_password}" cloudflare_key = "${var.cloudflare_key}" cloudflare_email = "bb8@captnemo.in" + wiki_session_secret = "${var.wiki_session_secret}" } diff --git a/variables.tf b/variables.tf index 31f243e..0065e8f 100644 --- a/variables.tf +++ b/variables.tf @@ -13,4 +13,8 @@ variable "web_password" { variable "mysql_root_password" { type = "string" -} \ No newline at end of file +} + +variable "wiki_session_secret" { + type = "string" +}