From e07dba4d5329cc2ea2dea9198698264cb215afec Mon Sep 17 00:00:00 2001 From: Rob Taglang Date: Sun, 1 Jan 2023 18:43:58 -0500 Subject: [PATCH] Add self hosted deployment files --- .../Quick Start Guide - John Schember.epub | Bin 0 -> 55740 bytes .../Quick Start Guide (1)/cover.jpg | Bin 0 -> 40856 bytes .../Quick Start Guide (1)/metadata.opf | 19 ++ calibre/metadata.db | Bin 0 -> 339968 bytes docker-compose.yml | 210 ++++++++++++++++++ host-setup.sh | 2 + koken/99-custom_overrides.ini | 2 + koken/Dockerfile | 3 + koken/nginx.conf | 90 ++++++++ nginx.conf.d/.htpasswd | 1 + nginx.conf.d/taglang.io.conf | 84 +++++++ spotify/Dockerfile | 29 +++ spotify/start.sh | 4 + sync_files/Dockerfile | 10 + sync_files/start.sh | 5 + sync_files/sync_files.py | 44 ++++ 16 files changed, 503 insertions(+) create mode 100644 calibre/John Schember/Quick Start Guide (1)/Quick Start Guide - John Schember.epub create mode 100644 calibre/John Schember/Quick Start Guide (1)/cover.jpg create mode 100644 calibre/John Schember/Quick Start Guide (1)/metadata.opf create mode 100644 calibre/metadata.db create mode 100644 docker-compose.yml create mode 100644 host-setup.sh create mode 100644 koken/99-custom_overrides.ini create mode 100644 koken/Dockerfile create mode 100644 koken/nginx.conf create mode 100644 nginx.conf.d/.htpasswd create mode 100644 nginx.conf.d/taglang.io.conf create mode 100644 spotify/Dockerfile create mode 100644 spotify/start.sh create mode 100644 sync_files/Dockerfile create mode 100644 sync_files/start.sh create mode 100644 sync_files/sync_files.py diff --git a/calibre/John Schember/Quick Start Guide (1)/Quick Start Guide - John Schember.epub b/calibre/John Schember/Quick Start Guide (1)/Quick Start Guide - John Schember.epub new file mode 100644 index 0000000000000000000000000000000000000000..a2167c5bcab0445fd0394cd034d0145d141e9a6f GIT binary patch literal 55740 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 literal 0 HcmV?d00001 diff --git a/calibre/John Schember/Quick Start Guide (1)/cover.jpg b/calibre/John Schember/Quick Start Guide (1)/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce0b28a62fd3581451351846d7f42557e9342380 GIT binary patch literal 40856 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ⅇ%lG%S6 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 literal 0 HcmV?d00001 diff --git a/calibre/John Schember/Quick Start Guide (1)/metadata.opf b/calibre/John Schember/Quick Start Guide (1)/metadata.opf new file mode 100644 index 0000000..a05a636 --- /dev/null +++ b/calibre/John Schember/Quick Start Guide (1)/metadata.opf @@ -0,0 +1,19 @@ + + + + 1 + e087b93d-b430-4933-9d85-15b6224bcc32 + Quick Start Guide + John Schember + calibre (4.22.0) [https://calibre-ebook.com] + 0101-01-01T00:00:00+00:00 + calibre Quick Start Guide + eng + + + + + + + + diff --git a/calibre/metadata.db b/calibre/metadata.db new file mode 100644 index 0000000000000000000000000000000000000000..89c6436a63aaae1bb2e55b81abba32961fc9a046 GIT binary patch literal 339968 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 literal 0 HcmV?d00001 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..2d753b7 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,210 @@ +version: '3' + +networks: + unifi_network: + mayan_network: + gitea_network: + +volumes: + scanned_files: + driver: local + driver_opts: + type: cifs + o: username=defaults,password=defaults,sec=ntlm,vers=1.0,file_mode=0777,dir_mode=0777 + device: "\\\\192.168.1.146\\MEMORYCARD\\EPSCAN\\001" + +services: + nginx: + image: staticfloat/nginx-certbot + restart: always + network_mode: 'host' + environment: + CERTBOT_EMAIL: rob@taglang.io + volumes: + - ./nginx.conf.d:/etc/nginx/user.conf.d:ro + - /opt/services/letsencrypt:/etc/letsencrypt + + sync_files: + build: sync_files + image: sync_files:local + restart: always + volumes: + - scanned_files:/source + - /opt/services/mayan/scanned_files:/target + + unifi_db: + image: mongo:3.4 + restart: always + networks: + - unifi_network + volumes: + - /opt/services/unifi/db:/data/db + + unifi_controller: + image: jacobalberty/unifi:latest + restart: always + depends_on: + - unifi_db + networks: + - unifi_network + volumes: + - /opt/services/unifi/data:/unifi/data + - /opt/services/unifi/log:/unifi/log + - /opt/services/unifi/cert:/unifi/cert + - /opt/services/unifi/init:/unifi/init.d + environment: + DB_URI: mongodb://unifi_db/unifi + STATDB_URI: mongodb://unifi_db/unifi_stat + DB_NAME: unifi + ports: + - "3478:3478/udp" # STUN + - "6789:6789/tcp" # Speed test + - "8080:8080/tcp" # Device/ controller comm. + - "8443:8443/tcp" # Controller GUI/API as seen in a web browser + - "8880:8880/tcp" # HTTP portal redirection + - "8843:8843/tcp" # HTTPS portal redirection + - "10001:10001/udp" # AP discovery + + unifi_logs: + image: bash + restart: always + depends_on: + - unifi_controller + command: bash -c 'tail -F /unifi/log/*.log' + volumes: + - /opt/services/unifi/log:/unifi/log + + gitlab: + image: 'gitlab/gitlab-ce:latest' + restart: always + hostname: 'gitlab.taglang.io' + environment: + GITLAB_OMNIBUS_CONFIG: | + external_url 'https://gitlab.taglang.io' + nginx['listen_port'] = 80 + nginx['listen_https'] = false + gitlab_rails['gitlab_shell_ssh_port'] = 2224 + ports: + - '8881:80' + - '2224:22' + volumes: + - /opt/services/gitlab/config:/etc/gitlab + - /opt/services/gitlab/logs:/var/log/gitlab + - /opt/services/gitlab/data:/var/opt/gitlab + + gitea: + image: 'gitea/gitea:latest' + environment: + - USER_UID=1000 + - USER_GID=1000 + restart: always + networks: + - gitea_network + volumes: + - /opt/services/gitea:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - '8885:3000' + - '2222:22' + + mayan_app: + image: mayanedms/mayanedms:3 + depends_on: + - mayan_postgresql + - mayan_redis + # Enable to use RabbitMQ + #- rabbitmq + environment: &mayan_env + # Enable to use RabbitMQ + # MAYAN_CELERY_BROKER_URL: amqp://mayan:mayanrabbitpass@broker:5672/mayan + # Disable Redis Broker to use RabbitMQ as Broker + MAYAN_CELERY_BROKER_URL: redis://:mayanredispassword@mayan_redis:6379/0 + MAYAN_CELERY_RESULT_BACKEND: redis://:mayanredispassword@mayan_redis:6379/1 + MAYAN_DATABASES: "{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayandbpass','USER':'mayan','HOST':'mayan_postgresql'}}" + networks: + - mayan_network + ports: + - "8882:8000" + restart: always + volumes: + - /opt/services/mayan/media:/var/lib/mayan + - /opt/services/mayan/scanned_files:/var/lib/mayan/scanned_files + + mayan_postgresql: + image: postgres:9.6-alpine + environment: + POSTGRES_DB: mayan + POSTGRES_PASSWORD: mayandbpass + POSTGRES_USER: mayan + networks: + - mayan_network + restart: always + volumes: + - /opt/services/mayan/postgres:/var/lib/postgresql/data + + mayan_redis: + image: redis:5.0-alpine + command: + - redis-server + - --databases + - "2" + - --maxmemory-policy + - allkeys-lru + - --save + - "" + - --requirepass mayanredispassword + networks: + - mayan_network + restart: always + volumes: + - /opt/services/mayan/redis:/data + + spotify_jenna: + build: spotify + image: spotify:local + restart: always + hostname: Jenna Spotify Server + devices: + - /dev/snd + environment: + SPOTIFY_USERNAME: adrian.jenna.c + SPOTIFY_PASSWORD: fM,KM_xK'Jn9vvU> + + spotify_rob: + build: spotify + image: spotify:local + restart: always + hostname: Rob Spotify Server + devices: + - /dev/snd + environment: + SPOTIFY_USERNAME: lasalvavida + SPOTIFY_PASSWORD: amethyst1 + + calibre_web: + image: linuxserver/calibre-web + container_name: calibre-web + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/New_York + - DOCKER_MODS=linuxserver/calibre-web:calibre + ports: + - 8883:8083 + restart: always + volumes: + - /opt/services/calibre/config:/config + - /opt/services/calibre/library:/books + + koken: + build: koken + image: koken:local + restart: always + hostname: koken.taglang.io + ports: + - 8884:80 + volumes: + - ./koken/99-custom_overrides.ini:/etc/php5/fpm/conf.d/99-custom_overrides.ini:ro + - /opt/services/koken/www:/usr/share/nginx/www + - /opt/services/koken/mysql:/var/lib/mysql diff --git a/host-setup.sh b/host-setup.sh new file mode 100644 index 0000000..32d00e9 --- /dev/null +++ b/host-setup.sh @@ -0,0 +1,2 @@ +#!/bin/bash +echo "options snd-hda-intel index=1" > /etc/modprobe.d/alsa.conf \ No newline at end of file diff --git a/koken/99-custom_overrides.ini b/koken/99-custom_overrides.ini new file mode 100644 index 0000000..bf24fef --- /dev/null +++ b/koken/99-custom_overrides.ini @@ -0,0 +1,2 @@ +upload_max_filesize = 2G +post_max_size = 2G diff --git a/koken/Dockerfile b/koken/Dockerfile new file mode 100644 index 0000000..9743539 --- /dev/null +++ b/koken/Dockerfile @@ -0,0 +1,3 @@ +FROM koken/koken-lemp:latest + +COPY ./nginx.conf /etc/nginx/nginx.conf \ No newline at end of file diff --git a/koken/nginx.conf b/koken/nginx.conf new file mode 100644 index 0000000..2e648dd --- /dev/null +++ b/koken/nginx.conf @@ -0,0 +1,90 @@ +user www-data; +worker_processes auto; +pid /run/nginx.pid; +include /etc/nginx/modules-enabled/*.conf; + +events { + use epoll; + worker_connections 768; + # multi_accept on; +} + +http { + + ## + # Basic Settings + ## + + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 2; + client_max_body_size 2G; + port_in_redirect off; + types_hash_max_size 2048; + # server_tokens off; + + # server_names_hash_bucket_size 64; + # server_name_in_redirect off; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + ## + # SSL Settings + ## + + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE + ssl_prefer_server_ciphers on; + + ## + # Logging Settings + ## + + access_log /var/log/nginx/access.log; + error_log /var/log/nginx/error.log; + + ## + # Gzip Settings + ## + + gzip on; + gzip_disable "msie6"; + + # gzip_vary on; + # gzip_proxied any; + # gzip_comp_level 6; + # gzip_buffers 16 8k; + # gzip_http_version 1.1; + # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; + + ## + # Virtual Host Configs + ## + + include /etc/nginx/conf.d/*.conf; + include /etc/nginx/sites-enabled/*; +} + + +#mail { +# # See sample authentication script at: +# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript +# +# # auth_http localhost/auth.php; +# # pop3_capabilities "TOP" "USER"; +# # imap_capabilities "IMAP4rev1" "UIDPLUS"; +# +# server { +# listen localhost:110; +# protocol pop3; +# proxy on; +# } +# +# server { +# listen localhost:143; +# protocol imap; +# proxy on; +# } +#} +daemon off; diff --git a/nginx.conf.d/.htpasswd b/nginx.conf.d/.htpasswd new file mode 100644 index 0000000..ef72517 --- /dev/null +++ b/nginx.conf.d/.htpasswd @@ -0,0 +1 @@ +rob:$apr1$9xyPmEcI$/icPEYJeSik0H1H4J3Im4. diff --git a/nginx.conf.d/taglang.io.conf b/nginx.conf.d/taglang.io.conf new file mode 100644 index 0000000..ca99b02 --- /dev/null +++ b/nginx.conf.d/taglang.io.conf @@ -0,0 +1,84 @@ +server { + listen 443 ssl; + server_name unifi.taglang.io; + location / { + proxy_set_header Host $host; + proxy_pass http://localhost:8880; + proxy_redirect off; + } + ssl_certificate /etc/letsencrypt/live/unifi.taglang.io/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/unifi.taglang.io/privkey.pem; +} +server { + listen 443 ssl; + server_name gitlab.taglang.io; + location / { + proxy_set_header Host $host; + proxy_pass http://localhost:8881; + proxy_redirect off; + } + ssl_certificate /etc/letsencrypt/live/gitlab.taglang.io/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/gitlab.taglang.io/privkey.pem; +} +server { + listen 443 ssl; + server_name mayan.taglang.io; + location / { + proxy_set_header Host $host; + proxy_pass http://localhost:8882; + proxy_redirect off; + } + ssl_certificate /etc/letsencrypt/live/mayan.taglang.io/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/mayan.taglang.io/privkey.pem; +} +server { + listen 443 ssl; + server_name calibre.taglang.io; + location / { + proxy_set_header Host $host; + proxy_pass http://localhost:8883; + proxy_redirect off; + } + ssl_certificate /etc/letsencrypt/live/calibre.taglang.io/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/calibre.taglang.io/privkey.pem; + client_max_body_size 2G; +} +server { + listen 443 ssl; + server_name koken.taglang.io; + location / { + proxy_set_header Host $host; + proxy_pass http://localhost:8884; + proxy_redirect off; + auth_basic "Restricted"; + auth_basic_user_file /etc/nginx/user.conf.d/.htpasswd; + } + location /admin { + proxy_set_header Host $host; + proxy_pass http://localhost:8884; + proxy_redirect off; + proxy_set_header X-Forwarded-Proto https; + } + location ~* \.php$ { + proxy_set_header Host $host; + proxy_pass http://localhost:8884; + proxy_redirect off; + proxy_set_header X-Forwarded-Proto https; + } + ssl_certificate /etc/letsencrypt/live/koken.taglang.io/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/koken.taglang.io/privkey.pem; + client_max_body_size 2G; +} +server { + listen 443 ssl; + server_name git.taglang.io; + location / { + proxy_set_header Host $host; + proxy_pass http://localhost:8885; + proxy_redirect off; + } + ssl_certificate /etc/letsencrypt/live/git.taglang.io/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/git.taglang.io/privkey.pem; + client_max_body_size 2G; +} + diff --git a/spotify/Dockerfile b/spotify/Dockerfile new file mode 100644 index 0000000..36280eb --- /dev/null +++ b/spotify/Dockerfile @@ -0,0 +1,29 @@ +FROM ubuntu + +# Install base dependencies +RUN apt-get update && apt-get install -y curl gnupg locales pulseaudio + +# Set the locale/TZ +RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ + locale-gen +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US:en +ENV LC_ALL en_US.UTF-8 +ENV TZ America/New_York +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +RUN apt-get install tzdata + +# Set up the virtual display +RUN apt-get install -y xvfb +ENV DISPLAY :1 + +# Install spotify +RUN curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | apt-key add - +RUN echo "deb http://repository.spotify.com stable non-free" | tee /etc/apt/sources.list.d/spotify.list +RUN apt-get update && apt-get install -y spotify-client + +# Start +ADD start.sh / +RUN chmod +x /start.sh + +CMD ["/start.sh"] diff --git a/spotify/start.sh b/spotify/start.sh new file mode 100644 index 0000000..064b1f1 --- /dev/null +++ b/spotify/start.sh @@ -0,0 +1,4 @@ +#!/bin/bash +rm /tmp/.X1-lock +Xvfb :1 -screen 0 1024x768x16 & sleep 1 +spotify --username="${SPOTIFY_USERNAME}" --password="${SPOTIFY_PASSWORD}" --show-console \ No newline at end of file diff --git a/sync_files/Dockerfile b/sync_files/Dockerfile new file mode 100644 index 0000000..306acb9 --- /dev/null +++ b/sync_files/Dockerfile @@ -0,0 +1,10 @@ +FROM ubuntu + +# Install base dependencies +RUN apt-get update && apt-get install -y python3 + +# Start +ADD sync_files.py / +RUN chmod +x /sync_files.py + +CMD ["python3", "-u", "/sync_files.py"] diff --git a/sync_files/start.sh b/sync_files/start.sh new file mode 100644 index 0000000..06c3871 --- /dev/null +++ b/sync_files/start.sh @@ -0,0 +1,5 @@ +#!/bin/bash +rsync --remove-source-files -avz /source/* /target +while inotifywait -r -e modify,create,delete,move /source; do + rsync --remove-source-files -avz /source/* /target +done diff --git a/sync_files/sync_files.py b/sync_files/sync_files.py new file mode 100644 index 0000000..5d28525 --- /dev/null +++ b/sync_files/sync_files.py @@ -0,0 +1,44 @@ +from shutil import copyfile +import os +import time +import uuid + +def is_done_being_written(file_path): + file_size_before = os.path.getsize(file_path) + print('Size before: ', file_size_before) + time.sleep(1) # 1s + file_size_after = os.path.getsize(file_path) + print('Size after: ', file_size_after) + return file_size_before == file_size_after + +def copy(source_file_path): + destination_dir = '/target' + destination_file_path = os.path.join(destination_dir, str(uuid.uuid4()) + '.pdf') + print(source_file_path, ' -> ', destination_file_path) + print('Checking if the file is done being written...') + while not is_done_being_written(source_file_path): + continue + print('File is stable, copying...') + copyfile(source_file_path, destination_file_path) + print('Deleting original...') + os.remove(source_file_path) + +def main(): + while True: + try: + source_dir = '/source' + for file_name in os.listdir(source_dir): + file_path = os.path.join(source_dir, file_name) + try: + copy(file_path) + except Exception as err: + print('Failed to copy ', file_path) + print(err) + except Exception as err: + print(err) + print('Done!') + print('Sleeping for 10m...') + time.sleep(60 * 10) #10m + +if __name__ == "__main__": + main()