From 7ac60aa62a339f572dc9dfd5c46329e7ba22d05d Mon Sep 17 00:00:00 2001 From: Nemo Date: Fri, 1 Dec 2017 02:19:35 +0530 Subject: [PATCH] Adds ubooquity --- README.md | 3 ++ docker/conf/ubooquity.json | 53 +++++++++++++++++++++++++++++++++ docker/data.tf | 4 +++ docker/images.tf | 7 ++++- docker/main.tf | 61 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 docker/conf/ubooquity.json diff --git a/README.md b/README.md index f2ec2a2..b18945c 100644 --- a/README.md +++ b/README.md @@ -31,3 +31,6 @@ The following security headers are applied using traefik on all traefik frontend - X-Powered-By: Allomancy - X-Server: BlackBox - X-Clacks-Overhead "GNU Terry Pratchett" + + +Currently waiting on traefik 1.5.0-rc2 to fix security specific headers issue. diff --git a/docker/conf/ubooquity.json b/docker/conf/ubooquity.json new file mode 100644 index 0000000..7be1895 --- /dev/null +++ b/docker/conf/ubooquity.json @@ -0,0 +1,53 @@ +{ + "filesPaths": [ + { + "pathString": "/files", + "userName": [] + } + ], + "comicsPaths": [ + { + "pathString": "/comics", + "userName": [] + } + ], + "booksPaths": [ + { + "pathString": "/books", + "userName": [] + } + ], + "users": [], + "isFilesProviderEnabled": true, + "isComicsProviderEnabled": true, + "isBooksProviderEnabled": true, + "isUserManagementEnabled": true, + "libraryPortNumber": 2202, + "adminPortNumber": 2203, + "comicWidth": 160, + "comicHeight": 230, + "comicsPaginationNumber": 30, + "bookWidth": 160, + "bookHeight": 230, + "booksPaginationNumber": 30, + "minimizeToTray": false, + "minimizeOnStartup": false, + "autoscanPeriod": 0, + "isRemoteAdminEnabled": true, + "theme": "default", + "isShrinkingCacheEnabled": false, + "shrunkPageWidth": 1536, + "shrunkPageHeight": 2500, + "shrinkingCachePath": "", + "autoScanAtLaunch": false, + "reverseProxyPrefix": "", + "keystorePath": "", + "keystorePassword": "", + "isOpdsProviderEnabled": true, + "folderExclusionPattern": "", + "bypassSingleRootFolder": false, + "enableFolderMetadataDisplay": false, + "bookmarkUsingCookies": false, + "displayTitleInsteadOfFileName": true, + "keepUnreachableSharedFolders": false +} diff --git a/docker/data.tf b/docker/data.tf index 12d45a9..e07a757 100644 --- a/docker/data.tf +++ b/docker/data.tf @@ -56,3 +56,7 @@ data "docker_registry_image" "headphones" { data "docker_registry_image" "muximux" { name = "linuxserver/muximux:latest" } + +data "docker_registry_image" "ubooquity" { + name = "linuxserver/ubooquity:latest" +} diff --git a/docker/images.tf b/docker/images.tf index e59e6f8..33b0334 100644 --- a/docker/images.tf +++ b/docker/images.tf @@ -61,4 +61,9 @@ resource "docker_image" "headphones" { resource "docker_image" "muximux" { name = "${data.docker_registry_image.muximux.name}" pull_triggers = ["${data.docker_registry_image.muximux.sha256_digest}"] -} \ No newline at end of file +} + +resource "docker_image" "ubooquity" { + name = "${data.docker_registry_image.ubooquity.name}" + pull_triggers = ["${data.docker_registry_image.ubooquity.sha256_digest}"] +} diff --git a/docker/main.tf b/docker/main.tf index d217927..17add16 100644 --- a/docker/main.tf +++ b/docker/main.tf @@ -460,6 +460,67 @@ resource "docker_container" "headphones" { ] } +resource "docker_container" "ubooquity" { + name = "ubooquity" + image = "${docker_image.ubooquity.latest}" + + restart = "unless-stopped" + destroy_grace_seconds = 30 + must_run = true + memory = 256 + + volumes { + host_path = "/mnt/xwing/config/ubooquity" + container_path = "/config" + } + + volumes { + host_path = "/mnt/xwing/media/EBooks" + container_path = "/books" + } + + volumes { + host_path = "/mnt/xwing/media/EBooks" + container_path = "/files" + } + + volumes { + host_path = "/mnt/xwing/media/EBooks/Comics" + container_path = "/comics" + } + + labels { + "traefik.enable" = "true" + + "traefik.admin.port" = 2203 + "traefik.admin.frontend.rule" = "Host:library.in.bb8.fun" + "traefik.admin.frontend.auth.basic" = "${var.basic_auth}" + + "traefik.read.port" = 2202 + "traefik.read.frontend.rule" = "Host:read.in.bb8.fun" + + "traefik.read.frontend.headers.SSLTemporaryRedirect" = "true" + "traefik.read.frontend.headers.STSSeconds" = "2592000" + "traefik.read.frontend.headers.STSIncludeSubdomains" = "false" + "traefik.read.frontend.headers.contentTypeNosniff" = "true" + "traefik.read.frontend.headers.browserXSSFilter" = "true" + # "traefik.read.frontend.headers.referrerPolicy" = "no-referrer" + "traefik.read.frontend.headers.customresponseheaders" = "X-Powered-By:Allomancy,X-Server:Blackbox" + } + + upload { + content = "${file("${path.module}/conf/ubooquity.json")}" + file = "/config/preferences.json" + } + + # lounge:tatooine + env = [ + "PUID=1004", + "PGID=1003", + "MAXMEM=512" + ] +} + resource "docker_container" "wiki" { name = "wiki" image = "${docker_image.wikijs.latest}"