First draft
This commit is contained in:
commit
2e6484e211
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Podman Quadlet Collection
|
||||||
|
|
||||||
|
This repository contains a collection of services, modelled as podman quadlets.
|
||||||
5
addy-db.volume
Normal file
5
addy-db.volume
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Addy.io Database Volume
|
||||||
|
|
||||||
|
[Volume]
|
||||||
|
VolumeName=addy-db-volume
|
||||||
18
addy.kube
Normal file
18
addy.kube
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Addy Mail Service (Pod)
|
||||||
|
After=network-online.target
|
||||||
|
Requires=addy-db.volume
|
||||||
|
After=addy-db.volume
|
||||||
|
|
||||||
|
[Kube]
|
||||||
|
Yaml=addy.yml
|
||||||
|
AutoUpdate=registry
|
||||||
|
|
||||||
|
UserNS=keep-id:uid=1000,gid=1000
|
||||||
|
ConfigMap=config.map
|
||||||
|
|
||||||
|
PublishPort=2525:25
|
||||||
|
PublishPort=8000:8000
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=always
|
||||||
67
addy.yml
Normal file
67
addy.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: addy
|
||||||
|
spec:
|
||||||
|
restartPolicy: Always
|
||||||
|
containers:
|
||||||
|
- name: addy-db
|
||||||
|
image: mariadb:12
|
||||||
|
args:
|
||||||
|
- "mariadbd"
|
||||||
|
- "--character-set-server=utf8mb4"
|
||||||
|
- "--collation-server=utf8mb4_unicode_ci"
|
||||||
|
env:
|
||||||
|
- name: MARIADB_RANDOM_ROOT_PASSWORD
|
||||||
|
value: "yes"
|
||||||
|
- name: MYSQL_DATABASE
|
||||||
|
value: "anonaddy_db"
|
||||||
|
- name: MYSQL_USER
|
||||||
|
value: "addy_user"
|
||||||
|
- name: MYSQL_PASSWORD
|
||||||
|
value: "secure_password"
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/lib/mysql
|
||||||
|
name: addy-db-volume
|
||||||
|
|
||||||
|
# --- Redis Service ---
|
||||||
|
- name: addy-redis
|
||||||
|
image: redis:8-alpine
|
||||||
|
|
||||||
|
# --- Addy Application ---
|
||||||
|
- name: addy-app
|
||||||
|
image: anonaddy/anonaddy:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 25
|
||||||
|
hostPort: 2525
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 8000
|
||||||
|
hostPort: 8000
|
||||||
|
protocol: TCP
|
||||||
|
env:
|
||||||
|
# Internal Networking uses localhost inside a Pod
|
||||||
|
- name: DB_HOST
|
||||||
|
value: "127.0.0.1"
|
||||||
|
- name: REDIS_HOST
|
||||||
|
value: "127.0.0.1"
|
||||||
|
|
||||||
|
|
||||||
|
- name: DB_DATABASE
|
||||||
|
value: "anonaddy_db"
|
||||||
|
- name: DB_USERNAME
|
||||||
|
value: "addy_user"
|
||||||
|
- name: DB_PASSWORD
|
||||||
|
value: "secure_password"
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: data-volume
|
||||||
|
|
||||||
|
# --- Volume Definitions ---
|
||||||
|
volumes:
|
||||||
|
- name: addy-db-volume
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: addy-db-volume
|
||||||
|
- name: data-volume
|
||||||
|
hostPath:
|
||||||
|
path: /opt/addy/data
|
||||||
|
type: Directory
|
||||||
34
config.map
Normal file
34
config.map
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: addy-config
|
||||||
|
data:
|
||||||
|
TZ: "Europe/Berlin"
|
||||||
|
PUID: "1000"
|
||||||
|
PGID: "1000"
|
||||||
|
MEMORY_LIMIT: "256M"
|
||||||
|
UPLOAD_MAX_SIZE: "16M"
|
||||||
|
OPCACHE_MEM_SIZE: "128"
|
||||||
|
REAL_IP_FROM: "0.0.0.0/32"
|
||||||
|
REAL_IP_HEADER: "X-Forwarded-For"
|
||||||
|
LOG_IP_VAR: "remote_addr"
|
||||||
|
APP_DEBUG: "false"
|
||||||
|
APP_URL: "http://127.0.0.1:8000"
|
||||||
|
ANONADDY_RETURN_PATH: "bounces@example.com"
|
||||||
|
ANONADDY_ADMIN_USERNAME: "addy"
|
||||||
|
ANONADDY_ENABLE_REGISTRATION: "true"
|
||||||
|
ANONADDY_DOMAIN: "example.com"
|
||||||
|
ANONADDY_ALL_DOMAINS: "example.com"
|
||||||
|
ANONADDY_HOSTNAME: "mail.example.com"
|
||||||
|
ANONADDY_DNS_RESOLVER: "127.0.0.1"
|
||||||
|
ANONADDY_SECRET: ""
|
||||||
|
ANONADDY_LIMIT: "200"
|
||||||
|
ANONADDY_BANDWIDTH_LIMIT: "104857600"
|
||||||
|
ANONADDY_NEW_ALIAS_LIMIT: "10"
|
||||||
|
ANONADDY_ADDITIONAL_USERNAME_LIMIT: "3"
|
||||||
|
MAIL_FROM_NAME: "addy.io"
|
||||||
|
MAIL_FROM_ADDRESS: "addy@example.com"
|
||||||
|
POSTFIX_DEBUG: "false"
|
||||||
|
POSTFIX_SMTPD_TLS: "false"
|
||||||
|
POSTFIX_SMTP_TLS: "false"
|
||||||
|
MYSQL_DATABASE: "anonaddy
|
||||||
10
secrets.yml
Normal file
10
secrets.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: addy.io-secrets
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
db-pass: c3VwZXItc2VjcmV0LWRiLXBhc3M=
|
||||||
|
api-token: bXktYXBpLXRva2VuLTEyMw==
|
||||||
|
addy-secret: replace-me
|
||||||
|
app-key: ""
|
||||||
Loading…
x
Reference in New Issue
Block a user