commit new services
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled

This commit is contained in:
tylen 2025-11-17 16:27:32 +02:00
parent 2c3936ff5a
commit f8f287cd84
14 changed files with 339 additions and 7 deletions

8
services/cronmaster/.env Normal file
View File

@ -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'

View File

@ -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

View File

@ -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'

View File

@ -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

View File

@ -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 */
}

View File

@ -0,0 +1,100 @@
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="index.css" />
<style>
/* Inline styles can be removed as they are now in index.css */
</style>
</head>
<body>
<div class="container">
<h1 id="-27-28-09-">Приглашение на новоселье 27-28.09 🏡</h1>
<p>
Дорогой друг, приглашаем и ожидаем тебя у нас дома
<strong><strong>27 сентября</strong></strong> к
<strong><strong>трем часам дня</strong></strong> (27.09.2025 15:00)!
</p>
<h2 id="-">Местоположение</h2>
<ul>
<li>
<a
href="https://www.openstreetmap.org/way/1083320458#map=19/61.504799/25.667193"
>OpenStreetMap</a
>
</li>
<li>
<a href="https://maps.app.goo.gl/NKyvqn6YRajGg4yQ7">Google Maps</a>
</li>
</ul>
<p>
<img style="border-radius: 12%;"
src="https://davydovcloud.com/public.php/dav/files/i2bZdqtYBi3rPYA"
alt="Карта для приезда"
/>
</p>
<h2 id="-">Программа</h2>
<p>27 сентября</p>
<table>
<thead>
<tr>
<th>Дейстиве</th>
<th>Примерное время</th>
</tr>
</thead>
<tbody>
<tr>
<td>Заселение и экскурсия по владениям 👥 🗺️</td>
<td>15 - 16</td>
</tr>
<tr>
<td>Гриль 🍖 🥩 🐓</td>
<td>16 - 18</td>
</tr>
<tr>
<td>Ужин 🍽️</td>
<td>18 - 19</td>
</tr>
<tr>
<td>Вечерние посиделки 🍾 🥂</td>
<td>19 - ∞</td>
</tr>
</tbody>
</table>
<div class="info-block">
<p>Те, кто уже был на экскурсии могут приехать к грилю, если хотят</p>
</div>
<p>28 сентября</p>
<table>
<thead>
<tr>
<th>Действие</th>
<th>Время</th>
</tr>
</thead>
<tbody>
<tr>
<td>Просыпаемся и завтракаем 🌅 🍳</td>
<td>07 - 12</td>
</tr>
<tr>
<td>Отдых, прогулка, (может сауна если кто захочет) 🌲 🍃 🛏️</td>
<td>12 - 15</td>
</tr>
</tbody>
</table>
<h2 id="-">Прогноз погоды на субботу</h2>
<p>
<img
src="https://davydovcloud.com/public.php/dav/files/w7FWMXkYimmZaKZ/"
alt="Прогноз погоды на 27 сентября в Сюсьме"
/>
</p>
<h2 id="-">Просим с собой взять следущие вещи</h2>
<ul>
<li>Свое полотенце</li>
<li>Игры (Твистер, настолки на ваш вкус)</li>
<li>Плавки на случай если пойдем в сауну</li>
</ul>
</div>
</body>
</html>

5
services/mealie/.env Normal file
View File

@ -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'

View File

@ -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:

View File

@ -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:

View File

@ -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
# ================================

View File

@ -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() {

8
services/wishlist/.env Normal file
View File

@ -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"

View File

@ -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

View File

@ -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