54 Commits

Author SHA1 Message Date
theis.gaedigk cfd3a77472 Merge branch 'dev' into prod 2026-06-03 16:33:26 +02:00
theis.gaedigk d308f80341 Merge branch 'dev' into prod 2026-05-24 14:19:31 +02:00
theis.gaedigk c79f81ec7d fixed readme issue 2026-05-24 14:18:19 +02:00
theis.gaedigk 9af4ddaf18 Merge branch 'dev' into prod 2026-05-24 14:16:49 +02:00
theis.gaedigk 9dd9ccebdd changed docker notes 2026-05-20 13:15:33 +02:00
theis.gaedigk 92605d85c2 Merge branch 'dev' into prod 2026-05-20 13:14:47 +02:00
theis.gaedigk 59a1ae51fa deleted unused compose 2026-05-20 13:10:11 +02:00
theis.gaedigk 80a3d4d464 changed ports again 2026-05-20 13:08:05 +02:00
theis.gaedigk 9efb93c37c changed docker config 2026-05-20 13:05:03 +02:00
theis.gaedigk cf638dc42d changed ports again 2026-05-20 12:51:13 +02:00
theis.gaedigk 65092b57d9 changed ports 2026-05-20 12:50:22 +02:00
theis.gaedigk 7045317fc6 reformatted compose 2026-05-20 12:46:50 +02:00
theis.gaedigk 0f75f55ac4 edited wg service 2026-05-20 12:45:59 +02:00
theis.gaedigk 2d2dc52012 changed docker compose 2026-05-20 12:39:08 +02:00
theis.gaedigk 566437bd71 changed port config 2026-05-20 10:49:03 +02:00
theis.gaedigk 266ee1af80 changed docker-compose 2026-05-20 10:41:11 +02:00
theis.gaedigk 43f8e00968 Merge branch 'dev' into prod 2026-05-20 10:39:43 +02:00
theis.gaedigk 5c43b817a7 Merge branch 'dev' into prod 2026-05-18 20:37:04 +02:00
theis.gaedigk 0953847f24 Merge branch 'dev' into prod 2026-05-10 21:08:23 +02:00
theis.gaedigk 9e7fc530b5 Merge branch 'dev' into prod 2026-05-10 21:05:13 +02:00
theis.gaedigk 18777e5f7c added allowed ips 2026-05-09 23:10:47 +02:00
theis.gaedigk b55129dfff closed ports 2026-05-09 23:06:17 +02:00
theis.gaedigk 26856ee1df edited 2026-05-09 23:03:56 +02:00
theis.gaedigk dd1d8d8d6b edited network config 2026-05-09 21:52:39 +02:00
theis.gaedigk cf2df0aaac edited code design 2026-05-09 21:46:01 +02:00
theis.gaedigk 1199d6468f noted out public web-ui port 2026-05-09 21:45:19 +02:00
theis.gaedigk 7cd958c31e edited ip adresses 2026-05-09 21:43:12 +02:00
theis.gaedigk f89cf84a38 edited docker config 2026-05-09 21:38:56 +02:00
theis.gaedigk e3fc1d8659 edited again 2026-05-09 21:30:59 +02:00
theis.gaedigk 060f8d01c6 edited again 2026-05-09 21:27:47 +02:00
theis.gaedigk 667609d70c fixed docker config 2026-05-09 21:24:42 +02:00
theis.gaedigk b05f19acd9 edited docker compose 2026-05-09 21:22:28 +02:00
theis.gaedigk 2aa9a968f5 Merge branch 'dev' into prod 2026-05-04 22:40:33 +02:00
theis.gaedigk e42a2f510a edited docker compose 2026-05-04 22:05:18 +02:00
theis.gaedigk d2b22fc71f Merge branch 'dev' into prod 2026-05-04 22:04:26 +02:00
theis.gaedigk 471c0c7a49 Merge branch 'dev' into prod 2026-01-21 16:33:03 +01:00
theis.gaedigk 75ff65e76b Merge branch 'dev' into prod 2026-01-21 16:28:23 +01:00
theis.gaedigk 7cf1245ef6 Merge branch 'dev' into prod 2026-01-21 14:27:37 +01:00
theis.gaedigk 2adbfa75a5 Merge branch 'dev' into prod 2026-01-21 14:07:26 +01:00
theis.gaedigk 216a1cb1d4 Merge branch 'dev' into prod 2026-01-20 20:43:59 +01:00
theis.gaedigk 7fc98d6c9f Merge branch 'dev' into prod 2026-01-20 20:34:52 +01:00
theis.gaedigk e346cf9445 e 2026-01-20 20:33:41 +01:00
theis.gaedigk c030b6dbe6 Merge branch 'dev' into prod 2026-01-20 20:33:31 +01:00
theis.gaedigk 6f26b9bbc3 e 2026-01-20 20:22:59 +01:00
theis.gaedigk a34a70572f edited 2026-01-20 20:19:12 +01:00
theis.gaedigk 4b3c8a2424 edited compose file 2026-01-20 20:17:53 +01:00
theis.gaedigk 568b3bf495 edited 2026-01-20 20:08:14 +01:00
theis.gaedigk 5653d32857 fix: update WireGuard PASSWORD_HASH to a static value 2026-01-20 20:06:44 +01:00
theis.gaedigk 7cf5b8df48 Merge branch 'dev' into prod 2026-01-20 20:03:51 +01:00
theis.gaedigk 65c5fc0f8f Merge branch 'dev' into prod 2026-01-20 19:59:27 +01:00
theis.gaedigk b626a67907 Merge branch 'dev' into prod 2026-01-20 19:46:56 +01:00
theis.gaedigk 6643a176a6 Merge branch 'dev' into prod 2026-01-20 19:43:53 +01:00
theis.gaedigk 89803754a7 Merge branch 'dev' into prod 2026-01-20 19:38:27 +01:00
theis.gaedigk 5052b3e83a changed fetch urls 2026-01-20 19:23:53 +01:00
6 changed files with 84 additions and 44 deletions
+1 -3
View File
@@ -51,7 +51,6 @@ export const confirmUser = async (username) => {
EMail Varchar(100) NOT NULL,
Telefonnummer Varchar(100) NOT NULL,
Lose INT NOT NULL,
Schokolade BOOLEAN NOT NULL,
Firmenname Varchar(100),
Vorname_Geschaeftlich Varchar(100),
Nachname_Geschaeftlich Varchar(100),
@@ -94,7 +93,7 @@ export const newEntry = async (formData, username, prizeDraw) => {
const tableName = confirmation.tableName;
const [result] = await pool.query(
`INSERT INTO ?? (Verlosung, Vorname, Nachname, EMail, Telefonnummer, Lose, Schokolade, Firmenname, Vorname_Geschaeftlich, Nachname_Geschaeftlich, EMail_Geschaeftlich, Telefonnummer_Geschaeftlich, Strasse_Hausnr, Plz_Ort, Zahlungsmethode) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
`INSERT INTO ?? (Verlosung, Vorname, Nachname, EMail, Telefonnummer, Lose, Firmenname, Vorname_Geschaeftlich, Nachname_Geschaeftlich, EMail_Geschaeftlich, Telefonnummer_Geschaeftlich, Strasse_Hausnr, Plz_Ort, Zahlungsmethode) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
[
tableName,
prizeDraw,
@@ -103,7 +102,6 @@ export const newEntry = async (formData, username, prizeDraw) => {
formData.email,
formData.phoneNumber,
formData.tickets,
formData.chocolates,
formData.companyName,
formData.cmpFirstName,
formData.cpmLastName,
+73 -13
View File
@@ -1,16 +1,19 @@
services:
# frontend:
# container_name: ca-lose-frontend
# build: ./frontend
# ports:
# - "8002:80"
# restart: unless-stopped
frontend:
container_name: ca-lose-frontend
hostname: lose-verkaufen
build: ./frontend
depends_on:
- backend
networks:
ca-lose-internal:
ipv4_address: 172.25.0.2
restart: unless-stopped
backend:
container_name: ca-lose-backend
hostname: backend
build: ./backend
ports:
- "8004:8004"
environment:
NODE_ENV: production
DB_HOST: ca-lose-mysql
@@ -19,21 +22,78 @@ services:
DB_NAME: ca_lose
depends_on:
- database
networks:
ca-lose-internal:
ipv4_address: 172.25.0.3
restart: unless-stopped
database:
container_name: ca-lose-mysql
hostname: database
image: mysql:8.0
restart: unless-stopped
ports:
- "3311:3306"
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: ca_lose
TZ: Europe/Berlin
volumes:
- ./.docker/volumes/ca-lose_mysql:/var/lib/mysql
- ../docker/volumes/ca-lose_mysql:/var/lib/mysql
- ./mysql-timezone.cnf:/etc/mysql/conf.d/timezone.cnf:ro
networks:
ca-lose-internal:
ipv4_address: 172.25.0.4
volumes:
ca-lose_mysql:
# DNS Server for hostname resolution within the Docker network
dnsmasq:
container_name: ca-lose-dns
image: andyshinn/dnsmasq:latest
restart: unless-stopped
cap_add:
- NET_ADMIN
command: >
--no-daemon
--log-queries
--address=/lose-verkaufen/172.25.0.2
--address=/frontend/172.25.0.2
--address=/backend/172.25.0.3
--address=/database/172.25.0.4
--address=/wireguard/172.25.0.6
networks:
ca-lose-internal:
ipv4_address: 172.25.0.5
# WireGuard VPN server for secure remote access to the Docker network
wireguard:
build: ./wg-easy-ca-lose
container_name: ca-lose-wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
WG_HOST: dus3.the1s.de
INSECURE: "true"
HOST: "172.25.0.6"
PORT: "80"
volumes:
- ../docker/volumes/ca-lose-wireguard-v15:/etc/wireguard
- /lib/modules:/lib/modules:ro
ports:
- "51830:51830/udp"
# - "51831:51821/tcp" Public Web-UI Port
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
depends_on:
- dnsmasq
networks:
ca-lose-internal:
ipv4_address: 172.25.0.6
networks:
ca-lose-internal:
driver: bridge
ipam:
config:
- subnet: 172.25.0.0/24
gateway: 172.25.0.1
-1
View File
@@ -46,7 +46,6 @@ export const createFormSchema = (
email: z.email(t("email-error")),
phoneNumber: z.string(t("phone-error")).refine(validator.isMobilePhone),
tickets: z.number(t("ticket-error")).min(1),
chocolates: z.boolean(t("chocolates-error")),
companyName: invoice
? z.string().min(1, t("name-error"))
: z.string().optional(),
+8 -21
View File
@@ -72,8 +72,7 @@ export const MainForm = () => {
lastName: "",
email: "",
phoneNumber: "",
tickets: 0,
chocolates: false,
tickets: 1,
companyName: "",
cmpFirstName: "",
cpmLastName: "",
@@ -317,7 +316,7 @@ export const MainForm = () => {
)}
</Field>
{/* Tickets + Invoice + Chocolate toggle */}
{/* Tickets + Invoice toggle */}
<div className="grid grid-cols-2 gap-3 items-end">
<FormControl required>
<FormLabel>{t("tickets")}</FormLabel>
@@ -331,14 +330,12 @@ export const MainForm = () => {
<>
<Input
type="number"
value={
field.state.value === 0 ? "" : field.state.value
}
value={field.state.value ?? ""}
onBlur={field.handleBlur}
onChange={(e) => {
const val = e.target.value;
field.handleChange(val === "" ? 0 : Number(val));
}}
onChange={(e) =>
field.handleChange(Number(e.target.value))
}
slotProps={{ input: { min: 1 } }}
variant="soft"
sx={{ borderRadius: "10px" }}
/>
@@ -352,7 +349,7 @@ export const MainForm = () => {
}}
</Field>
</FormControl>
<div className="flex flex-col gap-2 pb-2">
<div className="flex items-center pb-2">
<Checkbox
checked={invoice}
onChange={(e) => {
@@ -371,16 +368,6 @@ export const MainForm = () => {
label={t("invoice")}
variant="outlined"
/>
<Field name="chocolates">
{(field) => (
<Checkbox
checked={!!field.state.value}
onChange={(e) => field.handleChange(e.target.checked)}
label={t("chocolates")}
variant="outlined"
/>
)}
</Field>
</div>
</div>
+1 -3
View File
@@ -35,7 +35,5 @@
"name-error": "Sie müssen einen Namen eingeben!",
"email-error": "Sie müssen eine gültige E-Mail Adresse eingeben!",
"phone-error": "Sie müssen eine gültige Telefonnummer eingeben!",
"footer-headline": "Dieses System wurde vollständig konzipiert und entwickelt von Theis Gaedigk. - Portfolio: ",
"chocolates": "Schokoladen",
"chocolates-error": "Dieses Feld kann nur wahr oder falsch sein."
"footer-headline": "Dieses System wurde vollständig konzipiert und entwickelt von Theis Gaedigk. - Portfolio: "
}
+1 -3
View File
@@ -36,7 +36,5 @@
"name-error": "You have to enter a name!",
"email-error": "You have to enter a valid E-Mail adress!",
"phone-error": "You have to enter a vaild phone number!",
"footer-headline": "This system was fully designed and developed by Theis Gaedigk. - Portfolio: ",
"chocolates": "Chocolates",
"chocolates-error": "This field can only be true or false."
"footer-headline": "This system was fully designed and developed by Theis Gaedigk. - Portfolio: "
}