k8s -> podman
parent
9c6feb3bc5
commit
f8767f269f
|
@ -1,79 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: airsonic
|
|
||||||
name: airsonic
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
run: airsonic
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: airsonic
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: airsonic
|
|
||||||
image: linuxserver/airsonic:v10.6.2-ls83
|
|
||||||
env:
|
|
||||||
- name: PUID
|
|
||||||
value: "1000"
|
|
||||||
- name: PGID
|
|
||||||
value: "1000"
|
|
||||||
- name: TZ
|
|
||||||
value: "US/Eastern"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /config
|
|
||||||
name: airsonic-config
|
|
||||||
readOnly: false
|
|
||||||
- mountPath: /media/music
|
|
||||||
name: bigdata-music
|
|
||||||
readOnly: true
|
|
||||||
- mountPath: /media/playlists
|
|
||||||
name: bigdata-playlists
|
|
||||||
readOnly: true
|
|
||||||
- mountPath: /media/podcasts
|
|
||||||
name: bigdata-podcasts
|
|
||||||
readOnly: true
|
|
||||||
- mountPath: /media/media-vtluug
|
|
||||||
name: vtluug-media
|
|
||||||
readOnly: true
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
containerPort: 4040
|
|
||||||
volumes:
|
|
||||||
- name: airsonic-config
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/k8s-config/airsonic/config
|
|
||||||
- name: bigdata-music
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/media/music
|
|
||||||
- name: bigdata-playlists
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/media/playlists
|
|
||||||
- name: bigdata-podcasts
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/media/podcasts
|
|
||||||
- name: vtluug-media
|
|
||||||
hostPath:
|
|
||||||
path: /media-vtluug
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: airsonic
|
|
||||||
name: airsonic
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
run: airsonic
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 4040
|
|
||||||
protocol: TCP
|
|
|
@ -1,17 +0,0 @@
|
||||||
# Used to test DNS, example:
|
|
||||||
# k exec -i -t dnsutils -- nslookup dns-host.default
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Pod
|
|
||||||
metadata:
|
|
||||||
name: dnsutils
|
|
||||||
namespace: default
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: dnsutils
|
|
||||||
image: gcr.io/kubernetes-e2e-test-images/dnsutils:1.3
|
|
||||||
command:
|
|
||||||
- sleep
|
|
||||||
- "3600"
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
restartPolicy: Always
|
|
|
@ -1,98 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: gitea
|
|
||||||
name: gitea
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
run: gitea
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: gitea
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: gitea
|
|
||||||
image: gitea/gitea:1.12.5
|
|
||||||
# after initial install options must be changed at /data/gitea/conf/app.ini
|
|
||||||
env:
|
|
||||||
- name: RUN_MODE
|
|
||||||
value: "prod"
|
|
||||||
- name: DOMAIN
|
|
||||||
value: "git.seaturtle.pw"
|
|
||||||
- name: SSH_DOMAIN
|
|
||||||
value: "git.seaturtle.pw"
|
|
||||||
- name: SSH_PORT
|
|
||||||
value: "37122"
|
|
||||||
- name: ROOT_URL
|
|
||||||
value: "https://git.seaturtle.pw/"
|
|
||||||
- name: LFS_START
|
|
||||||
value: "true"
|
|
||||||
- name: DISABLE_REGISTRATION
|
|
||||||
value: "true"
|
|
||||||
- name: REQUIRE_SIGNIN_VIEW
|
|
||||||
value: "false"
|
|
||||||
- name: USER_UID
|
|
||||||
value: "1000"
|
|
||||||
- name: USER_GUID
|
|
||||||
value: "1000"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /data
|
|
||||||
name: gitea-data
|
|
||||||
readOnly: false
|
|
||||||
- mountPath: /etc/timezone
|
|
||||||
subPath: timezone
|
|
||||||
name: gitea-config
|
|
||||||
readOnly: true
|
|
||||||
- mountPath: /etc/localtime
|
|
||||||
name: gitea-localtime
|
|
||||||
readOnly: true
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
containerPort: 3000
|
|
||||||
- name: ssh
|
|
||||||
containerPort: 37122
|
|
||||||
volumes:
|
|
||||||
- name: gitea-data
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/k8s-config/gitea/data
|
|
||||||
- name: gitea-config
|
|
||||||
configMap:
|
|
||||||
name: gitea-config
|
|
||||||
- name: gitea-localtime
|
|
||||||
hostPath:
|
|
||||||
path: /usr/share/zoneinfo/America/New_York
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: gitea
|
|
||||||
name: gitea
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
run: gitea
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 3000
|
|
||||||
protocol: TCP
|
|
||||||
- name: ssh
|
|
||||||
port: 37122
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: gitea-config
|
|
||||||
namespace: pew
|
|
||||||
data:
|
|
||||||
timezone: |
|
|
||||||
America/New_York
|
|
|
@ -1,11 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: tcpservices
|
|
||||||
namespace: haproxy
|
|
||||||
data:
|
|
||||||
37122:
|
|
||||||
pew/gitea:37122
|
|
||||||
25565:
|
|
||||||
pew/minecraft:25565
|
|
|
@ -1,51 +0,0 @@
|
||||||
## For haproxy 2.2 COPY TO /etc/haproxy/haproxy.cfg
|
|
||||||
## Do https://unix.stackexchange.com/a/538901 to fix network-online.target on debian w/ /etc/intefaces
|
|
||||||
## certbot setup:
|
|
||||||
## - https://certbot.eff.org/lets-encrypt/debianbuster-haproxy
|
|
||||||
## - Add "0 0 1 * * systemctl stop haproxy && certbot renew && systemctl start haproxy && cat /etc/letsencrypt/live/seaturtle.pw/{fullchain,privkey}.pem > /etc/letsencrypt/live/seaturtle.pw/haproxy_cert.pem" to root crontab
|
|
||||||
## - (Default systemd timer does not have option to stop haproxy before running)
|
|
||||||
## Ensure microk8s only exposes nodeport on 127.0.0.1:
|
|
||||||
## - Edit /var/snap/microk8s/current/args/kube-proxy, adding "--nodeport-addresses=127.0.0.1/8"
|
|
||||||
|
|
||||||
|
|
||||||
defaults
|
|
||||||
log global
|
|
||||||
mode tcp
|
|
||||||
option dontlognull
|
|
||||||
retries 3
|
|
||||||
maxconn 4000
|
|
||||||
timeout connect 5000
|
|
||||||
timeout client 50000
|
|
||||||
timeout server 50000
|
|
||||||
|
|
||||||
frontend http-in
|
|
||||||
mode http
|
|
||||||
bind :::80
|
|
||||||
redirect scheme https
|
|
||||||
|
|
||||||
frontend https-in
|
|
||||||
mode http
|
|
||||||
option forwardfor
|
|
||||||
bind :::443 ssl crt /etc/letsencrypt/live/seaturtle.pw/haproxy_cert.pem ssl-min-ver TLSv1.2
|
|
||||||
acl server1 hdr(host) -i airsonic.seaturtle.pw
|
|
||||||
acl server1 hdr(host) -i git.seaturtle.pw
|
|
||||||
acl server1 hdr(host) -i nc.seaturtle.pw
|
|
||||||
acl server1 hdr(host) -i paul.walko.org
|
|
||||||
acl server1 hdr(host) -i plex.seaturtle.pw
|
|
||||||
acl server1 hdr(host) -i seaturtle.pw
|
|
||||||
use_backend server1 if server1
|
|
||||||
|
|
||||||
backend server1
|
|
||||||
mode http
|
|
||||||
option forwardfor
|
|
||||||
server server1 127.0.0.1:30080
|
|
||||||
|
|
||||||
listen proxy37122
|
|
||||||
mode tcp
|
|
||||||
bind :::37122
|
|
||||||
server ipv4server30122 127.0.0.1:30122
|
|
||||||
|
|
||||||
listen proxy25565
|
|
||||||
mode tcp
|
|
||||||
bind :::25565
|
|
||||||
server ipv4server30565 127.0.0.1:30565
|
|
|
@ -1,33 +0,0 @@
|
||||||
# k create namespace haproxy
|
|
||||||
# Create tcp services configmap:
|
|
||||||
# k apply -f haproxy-tcp.yml
|
|
||||||
# helm repo add haproxytech https://haproxytech.github.io/helm-charts && helm repo update
|
|
||||||
# helm install haproxy haproxytech/kubernetes-ingress --namespace haproxy -f haproxy.yml
|
|
||||||
controller:
|
|
||||||
replicaCount: 2
|
|
||||||
extraArgs:
|
|
||||||
- --configmap-tcp-services=haproxy/tcpservices
|
|
||||||
config:
|
|
||||||
path-rewrite: /s/(.*)/p /s/\1/preview
|
|
||||||
service:
|
|
||||||
type: NodePort
|
|
||||||
nodePorts:
|
|
||||||
http: 30080
|
|
||||||
enablePorts:
|
|
||||||
http: true
|
|
||||||
https: false
|
|
||||||
stat: true
|
|
||||||
ssh: true
|
|
||||||
minecraft: true
|
|
||||||
tcpPorts:
|
|
||||||
- name: ssh
|
|
||||||
port: 37122
|
|
||||||
targetPort: 37122
|
|
||||||
nodePort: 30122
|
|
||||||
- name: minecraft
|
|
||||||
port: 25565
|
|
||||||
targetPort: 25565
|
|
||||||
nodePort: 30565
|
|
||||||
|
|
||||||
defaultBackend:
|
|
||||||
replicaCount: 2
|
|
|
@ -1,71 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
# redirection is handled at upper haproxy layer
|
|
||||||
ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
name: haproxy-ingress
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
rules:
|
|
||||||
- host: seaturtle.pw
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: "Exact"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: nginx
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
- host: paul.walko.org
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: "Exact"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: nginx
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
- host: airsonic.seaturtle.pw
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: "Exact"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: airsonic
|
|
||||||
port:
|
|
||||||
number: 4040
|
|
||||||
- host: git.seaturtle.pw
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: "Exact"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: gitea
|
|
||||||
port:
|
|
||||||
number: 3000
|
|
||||||
- host: nc.seaturtle.pw
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: "Exact"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: nextcloud
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
- host: plex.seaturtle.pw
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: "Exact"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: plex
|
|
||||||
port:
|
|
||||||
number: 32400
|
|
|
@ -1,55 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: minecraft
|
|
||||||
name: minecraft
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
run: minecraft
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: minecraft
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: minecraft
|
|
||||||
image: itzg/minecraft-server:latest
|
|
||||||
env:
|
|
||||||
- name: EULA
|
|
||||||
value: "TRUE"
|
|
||||||
- name: MAX_MEMORY
|
|
||||||
value: "8G"
|
|
||||||
- name: VERSION
|
|
||||||
value: "1.15.2"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /data
|
|
||||||
name: minecraft-data
|
|
||||||
readOnly: false
|
|
||||||
ports:
|
|
||||||
- name: minecraft
|
|
||||||
containerPort: 25565
|
|
||||||
volumes:
|
|
||||||
- name: minecraft-data
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/k8s-config/minecraft/data
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: minecraft
|
|
||||||
name: minecraft
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
run: minecraft
|
|
||||||
ports:
|
|
||||||
- name: minecraft
|
|
||||||
port: 25565
|
|
||||||
protocol: TCP
|
|
|
@ -1,199 +0,0 @@
|
||||||
# to scan new files: k exec --stdin --tty nextcloud-POD -npew -- /bin/bash -c "/var/www/html/occ files:scan --path='/USER/files'"
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nextcloud
|
|
||||||
name: nextcloud
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
run: nextcloud
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nextcloud
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: nextcloud
|
|
||||||
image: nextcloud:20.0.1-apache
|
|
||||||
env:
|
|
||||||
- name: OVERWRITEHOST
|
|
||||||
value: "nc.seaturtle.pw"
|
|
||||||
- name: OVERWRITEPROTOCOL
|
|
||||||
value: "https"
|
|
||||||
- name: MYSQL_DATABASE
|
|
||||||
value: "nextcloud"
|
|
||||||
- name: MYSQL_USER
|
|
||||||
value: "nextcloud"
|
|
||||||
- name: MYSQL_PASSWORD
|
|
||||||
value: "nextcloud"
|
|
||||||
- name: MYSQL_HOST
|
|
||||||
value: "nextcloud-mariadb.pew"
|
|
||||||
- name: REDIS_HOST
|
|
||||||
value: "nextcloud-redis.pew"
|
|
||||||
- name: REDIS_HOST_PASSWORD
|
|
||||||
value: "nextcloud"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /var/www/html
|
|
||||||
name: nextcloud-data
|
|
||||||
readOnly: false
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
containerPort: 80
|
|
||||||
volumes:
|
|
||||||
- name: nextcloud-data
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/k8s-config/nextcloud/data
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: batch/v1beta1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: nextcloud-cron
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
schedule: "*/10 * * * *"
|
|
||||||
successfulJobsHistoryLimit: 1
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
restartPolicy: OnFailure
|
|
||||||
containers:
|
|
||||||
- name: nextcloud-cron
|
|
||||||
image: nextcloud:20.0.1-apache
|
|
||||||
command:
|
|
||||||
- "php"
|
|
||||||
- "-f"
|
|
||||||
- "/var/www/html/cron.php"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /var/www/html
|
|
||||||
name: nextcloud-data
|
|
||||||
readOnly: false
|
|
||||||
volumes:
|
|
||||||
- name: nextcloud-data
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/k8s-config/nextcloud/data
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nextcloud
|
|
||||||
name: nextcloud
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
run: nextcloud
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 80
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nextcloud-mariadb
|
|
||||||
name: nextcloud-mariadb
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
run: nextcloud-mariadb
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nextcloud-mariadb
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: mariadb
|
|
||||||
image: mariadb:10.5.6
|
|
||||||
env:
|
|
||||||
- name: MYSQL_RANDOM_ROOT_PASSWORD
|
|
||||||
value: "notnullvalue"
|
|
||||||
- name: MYSQL_PASSWORD
|
|
||||||
value: "nextcloud"
|
|
||||||
- name: MYSQL_DATABASE
|
|
||||||
value: "nextcloud"
|
|
||||||
- name: MYSQL_USER
|
|
||||||
value: "nextcloud"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /var/lib/mysql
|
|
||||||
name: nextcloud-mariadb
|
|
||||||
readOnly: false
|
|
||||||
ports:
|
|
||||||
- name: mysql
|
|
||||||
containerPort: 3306
|
|
||||||
volumes:
|
|
||||||
- name: nextcloud-mariadb
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/k8s-config/nextcloud/mariadb
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nextcloud-mariadb
|
|
||||||
name: nextcloud-mariadb
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
run: nextcloud-mariadb
|
|
||||||
ports:
|
|
||||||
- name: mysql
|
|
||||||
port: 3306
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nextcloud-redis
|
|
||||||
name: nextcloud-redis
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
run: nextcloud-redis
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nextcloud-redis
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: redis
|
|
||||||
image: redis:6.0.9
|
|
||||||
args:
|
|
||||||
- --requirepass
|
|
||||||
- nextcloud
|
|
||||||
ports:
|
|
||||||
- name: redis
|
|
||||||
containerPort: 6379
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nextcloud-redis
|
|
||||||
name: nextcloud-redis
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
run: nextcloud-redis
|
|
||||||
ports:
|
|
||||||
- name: redis
|
|
||||||
port: 6379
|
|
||||||
protocol: TCP
|
|
|
@ -1,134 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nginx
|
|
||||||
name: nginx
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
run: nginx
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nginx
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: nginx
|
|
||||||
image: nginx:1.19.3
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /etc/nginx/nginx.conf
|
|
||||||
subPath: nginx.conf
|
|
||||||
name: nginx-config
|
|
||||||
readOnly: true
|
|
||||||
- mountPath: /files
|
|
||||||
name: nginx-files
|
|
||||||
readOnly: true
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
containerPort: 80
|
|
||||||
volumes:
|
|
||||||
- name: nginx-config
|
|
||||||
configMap:
|
|
||||||
name: nginx-config
|
|
||||||
- name: nginx-files
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/files
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: nginx
|
|
||||||
name: nginx
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
run: nginx
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 80
|
|
||||||
protocol: TCP
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: nginx-config
|
|
||||||
namespace: pew
|
|
||||||
data:
|
|
||||||
nginx.conf: |
|
|
||||||
user nginx;
|
|
||||||
worker_processes 4;
|
|
||||||
pid /run/nginx.pid;
|
|
||||||
include /etc/nginx/modules/*.conf;
|
|
||||||
|
|
||||||
events {
|
|
||||||
worker_connections 768;
|
|
||||||
# multi_accept on;
|
|
||||||
}
|
|
||||||
|
|
||||||
http {
|
|
||||||
|
|
||||||
##
|
|
||||||
# Basic Settings
|
|
||||||
##
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
tcp_nopush on;
|
|
||||||
tcp_nodelay on;
|
|
||||||
keepalive_timeout 65;
|
|
||||||
types_hash_max_size 2048;
|
|
||||||
# server_tokens off;
|
|
||||||
|
|
||||||
# server_names_hash_bucket_size 64;
|
|
||||||
# server_name_in_redirect off;
|
|
||||||
|
|
||||||
client_max_body_size 0;
|
|
||||||
|
|
||||||
include /etc/nginx/mime.types;
|
|
||||||
default_type application/octet-stream;
|
|
||||||
|
|
||||||
##
|
|
||||||
# Logging Settings
|
|
||||||
##
|
|
||||||
|
|
||||||
#access_log /config/log/nginx/access.log;
|
|
||||||
#error_log /config/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/x-javascript text/xml application/xml application/xml+rss text/javascript;
|
|
||||||
|
|
||||||
##
|
|
||||||
# Virtual Host Configs
|
|
||||||
##
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name _;
|
|
||||||
root /;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
proxy_pass http://paulwalko.github.io/;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /files {
|
|
||||||
autoindex on;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#include /etc/nginx/conf.d/*.conf;
|
|
||||||
#include /config/nginx/site-confs/default;
|
|
||||||
#include /config/nginx/site-confs/*.enabled;
|
|
||||||
}
|
|
|
@ -1,73 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: plex
|
|
||||||
name: plex
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
run: plex
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: plex
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: plex
|
|
||||||
image: linuxserver/plex:1.20.3.3483-211702a9f-ls122
|
|
||||||
env:
|
|
||||||
- name: PUID
|
|
||||||
value: "1000"
|
|
||||||
- name: PGID
|
|
||||||
value: "1000"
|
|
||||||
- name: VERSION
|
|
||||||
value: "docker"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /config
|
|
||||||
name: plex-config
|
|
||||||
readOnly: false
|
|
||||||
- mountPath: /media/movies
|
|
||||||
name: bigdata-movies
|
|
||||||
readOnly: true
|
|
||||||
- mountPath: /media/music
|
|
||||||
name: bigdata-music
|
|
||||||
readOnly: true
|
|
||||||
- mountPath: /media/media-vtluug
|
|
||||||
name: vtluug-media
|
|
||||||
readOnly: true
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
containerPort: 32400
|
|
||||||
volumes:
|
|
||||||
- name: plex-config
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/k8s-config/plex/config
|
|
||||||
- name: bigdata-movies
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/media/movies
|
|
||||||
- name: bigdata-music
|
|
||||||
hostPath:
|
|
||||||
path: /bigdata/media/music
|
|
||||||
- name: vtluug-media
|
|
||||||
hostPath:
|
|
||||||
path: /media-vtluug
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
run: plex
|
|
||||||
name: plex
|
|
||||||
namespace: pew
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
run: plex
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 32400
|
|
||||||
protocol: TCP
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
up () {
|
||||||
|
loginctl enable-linger paul
|
||||||
|
podman network create pew-net || true
|
||||||
|
|
||||||
|
# Exposed on port 4040 in pew-net
|
||||||
|
podman create \
|
||||||
|
--name airsonic \
|
||||||
|
--env PUID=1000 \
|
||||||
|
--env PGID=1000 \
|
||||||
|
--env TZ=US/Eastern \
|
||||||
|
--volume /bigdata/k8s-config/airsonic/config:/config:rw \
|
||||||
|
--volume /bigdata/media/music:/media/music:ro \
|
||||||
|
--volume /bigdata/media/playlists:/media/playlists:ro \
|
||||||
|
--volume /bigdata/media/podcasts:/media/podcasts:ro \
|
||||||
|
--network pew-net \
|
||||||
|
linuxserver/airsonic:v10.6.2-ls83
|
||||||
|
|
||||||
|
podman generate systemd airsonic --restart-policy=always --name > ~/.config/systemd/user/airsonic.service
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
systemctl restart --user airsonic || systemctl start --user airsonic
|
||||||
|
systemctl enable --user airsonic
|
||||||
|
}
|
||||||
|
|
||||||
|
down () {
|
||||||
|
systemctl stop --user airsonic || true
|
||||||
|
systemctl disable --user airsonic || true
|
||||||
|
podman rm airsonic || true
|
||||||
|
}
|
||||||
|
|
||||||
|
logs () {
|
||||||
|
podman logs --follow airsonic
|
||||||
|
}
|
||||||
|
|
||||||
|
$@
|
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
up () {
|
||||||
|
loginctl enable-linger paul
|
||||||
|
podman network create pew-net || true
|
||||||
|
|
||||||
|
# Exposed on port 3000 in pew-net
|
||||||
|
podman create \
|
||||||
|
--name gitea \
|
||||||
|
--env RUN_MODE=prod \
|
||||||
|
--env DOMAIN=git.seaturtle.pw \
|
||||||
|
--env SSH_DOMAIN=git.seaturtle.pw \
|
||||||
|
--env SSH_PORT=2222 \
|
||||||
|
--env ROOT_URL=https://git.seaturtle.pw \
|
||||||
|
--env LFS_START=true \
|
||||||
|
--env DISABLE_REGISTRATION=true \
|
||||||
|
--env REQUIRE_SIGNIN_VIEW=false \
|
||||||
|
--env USER_UID=1000 \
|
||||||
|
--volume /bigdata/k8s-config/gitea/data:/data:rw \
|
||||||
|
--volume /etc/localtime:/etc/localtime:ro \
|
||||||
|
--volume /etc/timezone:/etc/timezone:ro \
|
||||||
|
--publish 127.0.0.1:2222:2222 \
|
||||||
|
--network pew-net \
|
||||||
|
gitea/gitea:1.12.5
|
||||||
|
|
||||||
|
podman generate systemd gitea --restart-policy=always --name > ~/.config/systemd/user/gitea.service
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
systemctl restart --user gitea || systemctl start --user gitea
|
||||||
|
systemctl enable --user gitea
|
||||||
|
}
|
||||||
|
|
||||||
|
down () {
|
||||||
|
systemctl stop --user gitea || true
|
||||||
|
systemctl disable --user gitea || true
|
||||||
|
podman rm gitea || true
|
||||||
|
}
|
||||||
|
|
||||||
|
logs () {
|
||||||
|
podman logs --follow gitea
|
||||||
|
}
|
||||||
|
|
||||||
|
$@
|
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
up () {
|
||||||
|
loginctl enable-linger paul
|
||||||
|
|
||||||
|
podman create \
|
||||||
|
--name minecraft \
|
||||||
|
--env EULA=TRUE \
|
||||||
|
--env MAX_MEMORY=8G \
|
||||||
|
--env VERSION=1.15.2 \
|
||||||
|
--volume /bigdata/k8s-config/minecraft/data:/data:rw \
|
||||||
|
--publish 127.0.0.1:25565:25565 \
|
||||||
|
itzg/minecraft-server:latest
|
||||||
|
|
||||||
|
podman generate systemd minecraft --restart-policy=always --name > ~/.config/systemd/user/minecraft.service
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
systemctl restart --user minecraft || systemctl start --user minecraft
|
||||||
|
systemctl enable --user minecraft
|
||||||
|
}
|
||||||
|
|
||||||
|
down () {
|
||||||
|
systemctl stop --user minecraft || true
|
||||||
|
systemctl disable --user minecraft || true
|
||||||
|
podman rm minecraft || true
|
||||||
|
}
|
||||||
|
|
||||||
|
logs () {
|
||||||
|
podman logs --follow minecraft
|
||||||
|
}
|
||||||
|
|
||||||
|
$@
|
|
@ -0,0 +1,9 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Nextcloud cron
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/podman exec nextcloud /bin/bash -c "if ! command -v sudo &> /dev/null; then apt-get update && apt-get install -y sudo; fi; sudo -u www-data php -f /var/www/html/cron.php"
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
|
@ -0,0 +1,9 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Run nextcloud-cron service every 10 minutes and on boot
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnBootSec=10min
|
||||||
|
OnUnitActiveSec=10min
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
|
@ -0,0 +1,90 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# to scan new files: k exec --stdin --tty nextcloud-POD -npew -- /bin/bash -c "/var/www/html/occ files:scan --path='/USER/files'"
|
||||||
|
|
||||||
|
up () {
|
||||||
|
loginctl enable-linger paul
|
||||||
|
podman network create pew-net || true
|
||||||
|
|
||||||
|
# Exposed on port 80 in pew-net
|
||||||
|
# Must edit config.php file after initial setup to change settings
|
||||||
|
podman create \
|
||||||
|
--name nextcloud \
|
||||||
|
--env OVERWRITEHOST=nc.seaturtle.pw \
|
||||||
|
--env OVERWRITEPROTOCOL=https \
|
||||||
|
--env MYSQL_DATABASE=nextcloud \
|
||||||
|
--env MYSQL_USER=nextcloud \
|
||||||
|
--env MYSQL_PASSWORD=nextcloud \
|
||||||
|
--env MYSQL_HOST=nextcloud-mariadb \
|
||||||
|
--env REDIS_HOST=nextcloud-redis \
|
||||||
|
--env REDIS_HOST_PASSWORD=nextcloud \
|
||||||
|
--volume /bigdata/k8s-config/nextcloud/data:/var/www/html:rw \
|
||||||
|
--network pew-net \
|
||||||
|
nextcloud:20.0.1-apache
|
||||||
|
|
||||||
|
podman generate systemd nextcloud --restart-policy=always --name > ~/.config/systemd/user/nextcloud.service
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
systemctl restart --user nextcloud || systemctl start --user nextcloud
|
||||||
|
systemctl enable --user nextcloud
|
||||||
|
|
||||||
|
# Exposed on port 3306 in pew-net
|
||||||
|
podman create \
|
||||||
|
--name nextcloud-mariadb \
|
||||||
|
--env MYSQL_RANDOM_ROOT_PASSWORD=notnullvalue \
|
||||||
|
--env MYSQL_PASSWORD=nextcloud \
|
||||||
|
--env MYSQL_DATABASE=nextcloud \
|
||||||
|
--env MYSQL_USER=nextcloud \
|
||||||
|
--volume /bigdata/k8s-config/nextcloud/mariadb:/var/lib/mysql:rw \
|
||||||
|
--network pew-net \
|
||||||
|
mariadb:10.5.6
|
||||||
|
|
||||||
|
podman generate systemd nextcloud-mariadb --restart-policy=always --name > ~/.config/systemd/user/nextcloud-mariadb.service
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
systemctl restart --user nextcloud-mariadb || systemctl start --user nextcloud-mariadb
|
||||||
|
systemctl enable --user nextcloud-mariadb
|
||||||
|
|
||||||
|
# Exposed on port 6379 in pew-net
|
||||||
|
podman create \
|
||||||
|
--name nextcloud-redis \
|
||||||
|
--network pew-net \
|
||||||
|
redis:6.0.9 --requirepass nextcloud
|
||||||
|
|
||||||
|
podman generate systemd nextcloud-redis --restart-policy=always --name > ~/.config/systemd/user/nextcloud-redis.service
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
systemctl restart --user nextcloud-redis || systemctl start --user nextcloud-redis
|
||||||
|
systemctl enable --user nextcloud-redis
|
||||||
|
|
||||||
|
cp nextcloud-cron.service nextcloud-cron.timer ~/.config/systemd/user/
|
||||||
|
systemctl restart --user nextcloud-cron.timer || systemctl start --user nextcloud-cron.timer
|
||||||
|
systemctl enable --user nextcloud-cron.timer
|
||||||
|
}
|
||||||
|
|
||||||
|
down () {
|
||||||
|
systemctl stop --user nextcloud || true
|
||||||
|
systemctl disable --user nextcloud || true
|
||||||
|
podman rm nextcloud || true
|
||||||
|
systemctl stop --user nextcloud-mariadb || true
|
||||||
|
systemctl disable --user nextcloud-mariadb || true
|
||||||
|
podman rm nextcloud-mariadb || true
|
||||||
|
systemctl stop --user nextcloud-redis || true
|
||||||
|
systemctl disable --user nextcloud-redis || true
|
||||||
|
podman rm nextcloud-redis || true
|
||||||
|
systemctl stop --user nextcloud-cron.timer || true
|
||||||
|
systemctl disable --user nextcloud-cron.timer || true
|
||||||
|
}
|
||||||
|
|
||||||
|
logs () {
|
||||||
|
podman logs -f nextcloud
|
||||||
|
}
|
||||||
|
|
||||||
|
logsm () {
|
||||||
|
podman logs -f nextcloud-mariadb
|
||||||
|
}
|
||||||
|
|
||||||
|
logsr () {
|
||||||
|
podman logs -f nextcloud-redis
|
||||||
|
}
|
||||||
|
|
||||||
|
$@
|
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
up () {
|
||||||
|
loginctl enable-linger paul
|
||||||
|
podman network create pew-net || true
|
||||||
|
|
||||||
|
# main nginx container
|
||||||
|
podman create \
|
||||||
|
--name nginx \
|
||||||
|
--env PUID=1000 \
|
||||||
|
--env GUID=1000 \
|
||||||
|
--env TZ=US/Eastern \
|
||||||
|
--env URL=seaturtle.pw \
|
||||||
|
--env SUBDOMAINS=airsonic,git,nc,plex \
|
||||||
|
--env VALIDATION=http \
|
||||||
|
--env EMAIL=paulsw.pw@gmail.com \
|
||||||
|
--volume /bigdata/k8s-config/nginx/config:/config:rw \
|
||||||
|
--volume /bigdata/k8s-config/nginx/nginx.conf:/config/nginx/nginx.conf:ro \
|
||||||
|
--volume /bigdata/k8s-config/nginx/ssl.conf:/config/nginx/ssl.conf:ro \
|
||||||
|
--volume /bigdata/k8s-config/nginx/site-confs:/config/nginx/site-confs:ro \
|
||||||
|
--publish 127.0.0.1:8080:80 \
|
||||||
|
--publish 127.0.0.1:8443:443 \
|
||||||
|
--network pew-net \
|
||||||
|
linuxserver/swag:1.10.1-ls29
|
||||||
|
|
||||||
|
podman generate systemd nginx --restart-policy=always --name > ~/.config/systemd/user/nginx.service
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
systemctl restart --user nginx || systemctl start --user nginx
|
||||||
|
systemctl enable --user nginx
|
||||||
|
}
|
||||||
|
|
||||||
|
down () {
|
||||||
|
systemctl stop --user nginx || true
|
||||||
|
systemctl disable --user nginx || true
|
||||||
|
podman rm nginx || true
|
||||||
|
}
|
||||||
|
|
||||||
|
logs () {
|
||||||
|
podman logs --follow nginx
|
||||||
|
}
|
||||||
|
|
||||||
|
$@
|
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
up () {
|
||||||
|
loginctl enable-linger paul
|
||||||
|
podman network create pew-net || true
|
||||||
|
|
||||||
|
# Exposed on port 32400 in pew-net
|
||||||
|
podman create \
|
||||||
|
--name plex \
|
||||||
|
--env PUID=1000 \
|
||||||
|
--env PGID=1000 \
|
||||||
|
--env VERSION=docker \
|
||||||
|
--volume /bigdata/k8s-config/plex/config:/config:rw \
|
||||||
|
--volume /bigdata/media/movies:/media/movies:ro \
|
||||||
|
--volume /bigdata/media/music:/media/music:ro \
|
||||||
|
--volume /media-vtluug:/media/media-vtluug:ro \
|
||||||
|
--network pew-net \
|
||||||
|
linuxserver/plex:1.20.3.3483-211702a9f-ls122
|
||||||
|
|
||||||
|
podman generate systemd plex --restart-policy=always --name > ~/.config/systemd/user/plex.service
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
systemctl restart --user plex || systemctl start --user plex
|
||||||
|
systemctl enable --user plex
|
||||||
|
}
|
||||||
|
|
||||||
|
down () {
|
||||||
|
systemctl stop --user plex || true
|
||||||
|
systemctl disable --user plex || true
|
||||||
|
podman rm plex || true
|
||||||
|
}
|
||||||
|
|
||||||
|
logs () {
|
||||||
|
podman logs --follow plex
|
||||||
|
}
|
||||||
|
|
||||||
|
$@
|
Loading…
Reference in New Issue