From f8f287cd8463cefe03d8f0ff0a96e5a63250b937 Mon Sep 17 00:00:00 2001 From: tylen Date: Mon, 17 Nov 2025 16:27:32 +0200 Subject: [PATCH] commit new services --- services/cronmaster/.env | 8 ++ services/cronmaster/docker-compose.yml | 24 +++++ services/invitations/.env | 7 ++ services/invitations/docker-compose.yml | 10 ++ services/invitations/novoselye/index.css | 98 +++++++++++++++++ services/invitations/novoselye/index.html | 100 ++++++++++++++++++ services/mealie/.env | 5 + services/mealie/docker-compose.yml | 24 +++++ services/portainer/docker-compose.yml | 6 ++ services/services.yaml | 28 +++++ services/tools/create_svc_directory.sh | 12 +-- services/wishlist/.env | 8 ++ services/wishlist/docker-compose.yml | 13 +++ .../youtube_downloaders/docker-compose.yml | 3 +- 14 files changed, 339 insertions(+), 7 deletions(-) create mode 100644 services/cronmaster/.env create mode 100644 services/cronmaster/docker-compose.yml create mode 100644 services/invitations/.env create mode 100644 services/invitations/docker-compose.yml create mode 100644 services/invitations/novoselye/index.css create mode 100644 services/invitations/novoselye/index.html create mode 100644 services/mealie/.env create mode 100644 services/mealie/docker-compose.yml create mode 100644 services/wishlist/.env create mode 100644 services/wishlist/docker-compose.yml diff --git a/services/cronmaster/.env b/services/cronmaster/.env new file mode 100644 index 0000000..4707ba0 --- /dev/null +++ b/services/cronmaster/.env @@ -0,0 +1,8 @@ +# Dot Env for service сronmaster created at Sun Nov 16 12:44:00 PM EET 2025 +#СRONMASTER_CONFIG_REMOTE='/home/vm-user/remote-apps/сronmaster/config' +#СRONMASTER_CONFIG_LOCAL='/home/vm-user/local-apps/сronmaster/config' +#СRONMASTER_DATA_REMOTE='/home/vm-user/remote-apps/сronmaster/data' +CRONMASTER_DATA_LOCAL='/home/vm-user/local-apps/сronmaster/data' +CRONMASTER_DATA_LOCAL_SCRIPTS='/home/vm-user/local-apps/сronmaster/data/scripts' +CRONMASTER_DATA_LOCAL_SNIPPETS='/home/vm-user/local-apps/сronmaster/data/snippets' +PASSWORD='Yy572NHMqlozZXNMwsYRW2DeZ1q7y1brBXaNmmwWfDBUHEWRT65QsfGpzCODZWir' \ No newline at end of file diff --git a/services/cronmaster/docker-compose.yml b/services/cronmaster/docker-compose.yml new file mode 100644 index 0000000..802767a --- /dev/null +++ b/services/cronmaster/docker-compose.yml @@ -0,0 +1,24 @@ +# Docker Compose for service сronmaster created at Sun Nov 16 12:44:00 PM EET 2025 +# For all configuration options, see howto/DOCKER.md +services: + cronmaster: + image: ghcr.io/fccview/cronmaster:latest + container_name: cronmaster + user: "root" + ports: + - "${SVC_PORT_1}:3000" + environment: + - NODE_ENV=production + - DOCKER=true + - NEXT_PUBLIC_CLOCK_UPDATE_INTERVAL=30000 + - AUTH_PASSWORD=${PASSWORD} + - HOST_CRONTAB_USER=root + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ${CRONMASTER_DATA_LOCAL_SCRIPTS}:/app/scripts + - ${CRONMASTER_DATA_LOCAL}:/app/data + - ${CRONMASTER_DATA_LOCAL_SNIPPETS}:/app/snippets + pid: "host" + privileged: true + restart: always + init: true diff --git a/services/invitations/.env b/services/invitations/.env new file mode 100644 index 0000000..649e7f4 --- /dev/null +++ b/services/invitations/.env @@ -0,0 +1,7 @@ +# Dot Env for service invitations created at Wed Sep 24 11:53:03 AM EEST 2025 +LOCAL_APPS='/home/vm-user/local-apps' +REMOTE_APPS='/home/vm-user/remote-apps' +#INVITATIONS_CONFIG_REMOTE='${REMOTE_APPS}/config' +#INVITATIONS_CONFIG_LOCAL='${LOCAL_APPS}/config' +#INVITATIONS_DATA_REMOTE='${REMOTE_APPS}/data' +#INVITATIONS_DATA_LOCAL='${LOCAL_APPS}/data' diff --git a/services/invitations/docker-compose.yml b/services/invitations/docker-compose.yml new file mode 100644 index 0000000..7b2e50c --- /dev/null +++ b/services/invitations/docker-compose.yml @@ -0,0 +1,10 @@ +# Docker Compose for service invitations created at Wed Sep 24 11:53:03 AM EEST 2025 +services: + nginx: + image: nginx + container_name: invitation-novoselye + volumes: + - /home/tylen/andromeda-setup/services/invitations/novoselye:/usr/share/nginx/html:ro + ports: + - ${SVC_PORT_1}:80 + restart: always diff --git a/services/invitations/novoselye/index.css b/services/invitations/novoselye/index.css new file mode 100644 index 0000000..d941b6f --- /dev/null +++ b/services/invitations/novoselye/index.css @@ -0,0 +1,98 @@ +/* Reset some default styles */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Arial, sans-serif; + line-height: 1.6; + background-color: #f9f9f9; /* Light background for contrast */ + color: #333; /* Darker text for readability */ + padding: 20px; + display: flex; /* Use flexbox for centering */ + justify-content: center; /* Center horizontally */ + align-items: center; /* Center vertically */ + min-height: 100vh; /* Full viewport height */ +} + +.container { + max-width: 800px; /* Limit the width of the content */ + width: 100%; /* Full width up to max-width */ + padding: 20px; /* Padding inside the container */ + background-color: white; /* White background for the content */ + border-radius: 8px; /* Rounded corners */ + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */ +} + +h1, h2, h4 { + color: #2c3e50; /* Darker shade for headings */ + margin-bottom: 10px; + text-align: center; /* Center headings */ +} + +h1 { + font-size: 2.5em; /* Larger font size for main title */ + margin-bottom: 20px; +} + +h2 { + font-size: 1.8em; /* Slightly smaller for subheadings */ + margin-top: 20px; +} + +p { + margin-bottom: 15px; /* Space between paragraphs */ + text-align: center; /* Center paragraphs */ +} + +ul { + list-style-type: none; /* Remove bullet points */ + padding-left: 0; /* Remove default padding */ +} + +ul li { + margin-bottom: 10px; /* Space between list items */ + text-align: center; /* Center list items */ +} + +table { + width: 100%; /* Full width for tables */ + border-collapse: collapse; /* Remove space between borders */ + margin: 20px 0; /* Space above and below tables */ +} + +th, td { + border: 1px solid #ddd; /* Light border for table cells */ + padding: 10px; /* Padding inside cells */ + text-align: left; /* Align text to the left */ +} + +th { + background-color: #2c3e50; /* Dark background for headers */ + color: white; /* White text for headers */ +} + +img { + max-width: 100%; /* Responsive images */ + height: auto; /* Maintain aspect ratio */ + margin: 20px 0; /* Space above and below images */ +} + +code { + background-color: #eaeaea; /* Light background for code */ + padding: 2px 4px; /* Padding around code */ + border-radius: 4px; /* Rounded corners */ +} + +.info-block { + background-color: #e7f3fe; /* Light blue background */ + border-left: 6px solid #2196F3; /* Blue left border */ + padding: 10px 15px; /* Padding inside the block */ + margin: 20px 0; /* Space above and below the block */ + border-radius: 4px; /* Rounded corners */ + color: #333; /* Dark text color */ + text-align: center; /* Center text */ +} + diff --git a/services/invitations/novoselye/index.html b/services/invitations/novoselye/index.html new file mode 100644 index 0000000..f68dff9 --- /dev/null +++ b/services/invitations/novoselye/index.html @@ -0,0 +1,100 @@ + + + + + + + +
+

Приглашение на новоселье 27-28.09 🏡

+

+ Дорогой друг, приглашаем и ожидаем тебя у нас дома + 27 сентября к + трем часам дня (27.09.2025 15:00)! +

+

Местоположение

+ +

+ Карта для приезда +

+

Программа

+

27 сентября

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ДейстивеПримерное время
Заселение и экскурсия по владениям 👥 🗺️15 - 16
Гриль 🍖 🥩 🐓16 - 18
Ужин 🍽️18 - 19
Вечерние посиделки 🍾 🥂19 - ∞
+
+

Те, кто уже был на экскурсии могут приехать к грилю, если хотят

+
+

28 сентября

+ + + + + + + + + + + + + + + + + +
ДействиеВремя
Просыпаемся и завтракаем 🌅 🍳07 - 12
Отдых, прогулка, (может сауна если кто захочет) 🌲 🍃 🛏️12 - 15
+

Прогноз погоды на субботу

+

+ Прогноз погоды на 27 сентября в Сюсьме +

+

Просим с собой взять следущие вещи

+ +
+ + diff --git a/services/mealie/.env b/services/mealie/.env new file mode 100644 index 0000000..41ab1da --- /dev/null +++ b/services/mealie/.env @@ -0,0 +1,5 @@ +# Dot Env for service mealie created at Sun Nov 16 11:22:38 AM EET 2025 +#MEALIE_CONFIG_REMOTE='/home/vm-user/remote-apps/mealie/config' +#MEALIE_CONFIG_LOCAL='/home/vm-user/local-apps/mealie/config' +#MEALIE_DATA_REMOTE='/home/vm-user/remote-apps/mealie/data' +MEALIE_DATA_LOCAL='/home/vm-user/local-apps/mealie/data' diff --git a/services/mealie/docker-compose.yml b/services/mealie/docker-compose.yml new file mode 100644 index 0000000..03cf7db --- /dev/null +++ b/services/mealie/docker-compose.yml @@ -0,0 +1,24 @@ +# Docker Compose for service mealie created at Sun Nov 16 11:22:38 AM EET 2025 +services: + mealie: + image: ghcr.io/mealie-recipes/mealie:v3.5.0 # + container_name: mealie + restart: always + ports: + - "${SVC_PORT_1}:9000" # + deploy: + resources: + limits: + memory: 1000M # + volumes: + - ${MEALIE_DATA_LOCAL}:/app/data/ + environment: + # Set Backend ENV Variables Here + ALLOW_SIGNUP: "false" + PUID: 1000 + PGID: 1000 + TZ: America/Anchorage + BASE_URL: https://mealie.yourdomain.com + +volumes: + mealie-data: \ No newline at end of file diff --git a/services/portainer/docker-compose.yml b/services/portainer/docker-compose.yml index c5259d7..b0765bf 100644 --- a/services/portainer/docker-compose.yml +++ b/services/portainer/docker-compose.yml @@ -7,6 +7,12 @@ services: container_name: portainer hostname: portainer restart: unless-stopped + deploy: + resources: + limits: + memory: 256M + reservations: + memory: 128M ports: - ${SVC_PORT_1}:9443 volumes: diff --git a/services/services.yaml b/services/services.yaml index bcdea1f..be3f685 100644 --- a/services/services.yaml +++ b/services/services.yaml @@ -40,6 +40,20 @@ services: <<: *vm-personal-100-16 <<: *defaultServiceValues + - name: "invitations" + ports: + - 9444 + host: + <<: *vm-personal-100-16 + <<: *defaultServiceValues + + - name: "cronmaster" + ports: + - 9445 + host: + <<: *vm-personal-100-16 + <<: *defaultServiceValues + # ================================ # vm-tools-100-52 # ================================ @@ -50,6 +64,20 @@ services: # <<: *vm-tools-100-52 # <<: *defaultServiceValues + - name: "wishlist" + ports: + - 3005 + host: + <<: *vm-tools-100-52 + <<: *defaultServiceValues + + - name: "mealie" + ports: + - 3006 + host: + <<: *vm-tools-100-52 + <<: *defaultServiceValues + # ================================ # vm-media-100-55 # ================================ diff --git a/services/tools/create_svc_directory.sh b/services/tools/create_svc_directory.sh index c03d0e6..2770dea 100755 --- a/services/tools/create_svc_directory.sh +++ b/services/tools/create_svc_directory.sh @@ -4,6 +4,8 @@ set -euo pipefail GIT_REPO_ROOT=$(git rev-parse --show-toplevel) +LOCAL_APPS='/home/vm-user/local-apps' +REMOTE_APPS='/home/vm-user/remote-apps' function create_dotenv() { local service_path="${1}" @@ -12,12 +14,10 @@ function create_dotenv() { printf "# Dot Env for service %s created at %s\n" \ "${service_name}" "$(TZ=Europe/Helsinki date)" > "${service_path}/.env" - echo "LOCAL_APPS='/home/vm-user/local-apps'" >> "${service_path}/.env" - echo "REMOTE_APPS='/home/vm-user/remote-apps'" >> "${service_path}/.env" - echo "#${service_name_cap}_CONFIG_REMOTE='\${REMOTE_APPS}/config'" >> "${service_path}/.env" - echo "#${service_name_cap}_CONFIG_LOCAL='\${LOCAL_APPS}/config'" >> "${service_path}/.env" - echo "#${service_name_cap}_DATA_REMOTE='\${REMOTE_APPS}/data'" >> "${service_path}/.env" - echo "#${service_name_cap}_DATA_LOCAL='\${LOCAL_APPS}/data'" >> "${service_path}/.env" + echo "#${service_name_cap}_CONFIG_REMOTE='${REMOTE_APPS}/${service_name}/config'" >> "${service_path}/.env" + echo "#${service_name_cap}_CONFIG_LOCAL='${LOCAL_APPS}/${service_name}/config'" >> "${service_path}/.env" + echo "#${service_name_cap}_DATA_REMOTE='${REMOTE_APPS}/${service_name}/data'" >> "${service_path}/.env" + echo "#${service_name_cap}_DATA_LOCAL='${LOCAL_APPS}/${service_name}/data'" >> "${service_path}/.env" } function create_compose() { diff --git a/services/wishlist/.env b/services/wishlist/.env new file mode 100644 index 0000000..83f50ef --- /dev/null +++ b/services/wishlist/.env @@ -0,0 +1,8 @@ +# Dot Env for service wishlist created at Tue Nov 4 10:55:18 PM EET 2025 +LOCAL_APPS='/home/vm-user/local-apps' +REMOTE_APPS='/home/vm-user/remote-apps' +#WISHLIST_CONFIG_REMOTE='${REMOTE_APPS}/config' +#WISHLIST_CONFIG_LOCAL='${LOCAL_APPS}/config' +WISHLIST_DATA_REMOTE='/home/vm-user/remote-apps/wishlist/data' +WISHLIST_DATA_LOCAL='/home/vm-user/local-apps/wishilst/data' +HOSTNAME="https://wishlist.davydovcloud.com" \ No newline at end of file diff --git a/services/wishlist/docker-compose.yml b/services/wishlist/docker-compose.yml new file mode 100644 index 0000000..096c250 --- /dev/null +++ b/services/wishlist/docker-compose.yml @@ -0,0 +1,13 @@ +# Docker Compose for service wishlist created at Tue Nov 4 10:55:18 PM EET 2025 +services: + wishlist: + container_name: wishlist + image: ghcr.io/cmintey/wishlist:latest + ports: + - ${SVC_PORT_1}:3280 + volumes: + - ${WISHLIST_DATA_REMOTE}:/usr/src/app/uploads # This is where user image uploads will be stored + - ${WISHLIST_DATA_LOCAL}:/usr/src/app/data # This is where the sqlite database will be stored + environment: + ORIGIN: ${HOSTNAME} # The URL your users will be connecting to + TOKEN_TIME: 72 # hours until signup and password reset tokens expire diff --git a/services/youtube_downloaders/docker-compose.yml b/services/youtube_downloaders/docker-compose.yml index d19fc6e..30d1a05 100644 --- a/services/youtube_downloaders/docker-compose.yml +++ b/services/youtube_downloaders/docker-compose.yml @@ -2,7 +2,7 @@ services: gluetun: image: qmcgaw/gluetun - container_name: metube-gluetun + container_name: metube_vpn cap_add: - NET_ADMIN devices: @@ -17,6 +17,7 @@ services: - WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY} - WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES} - SERVER_COUNTRIES=${SERVER_COUNTRIES} + metube-tg-gui: build: context: telegram-bot-fetcher