podman: add mariadb, forgejo, npm containers

This commit is contained in:
LinuxSquare 2023-10-27 16:56:26 +02:00
parent f9748745dd
commit eb9c52a19b
12 changed files with 195 additions and 4 deletions

View file

@ -0,0 +1,24 @@
version: '3'
services:
forgejo_server:
image: codeberg.org/forgejo/forgejo:1.20
container_name: forgejo
environment:
- USER_UID=1000
- USER_GID=1000
- FORGEJO__database__DB_TYPE=mysql
- FORGEJO__database__HOST=noveria_db:3306
- FORGEJO__database__NAME=forgejo
- FORGEJO__database__USER={{ MARIADB_USER }}
- FORGEJO__database__PASSWD={{ MARIADB_USER_PASSWORD }}
restart: always
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
default:
external: true
name: noveria

View file

@ -0,0 +1,20 @@
version: '3.1'
services:
noveria_db:
image: docker.io/mariadb:lts
restart: always
environment:
MARIADB_ROOT_PASSWORD: {{ MARIADB_ROOT_PASSWORD }}
MARIADB_USER: {{ MARIADB_USER }}
MARIADB_USER_PASSWORD: {{ MARIADB_USER_PASSWORD }}
volumes:
- ./data:/var/lib/mysql
adminer_ui:
image: docker.io/adminer
restart: always
networks:
default:
external: true
name: noveria

View file

@ -0,0 +1,24 @@
version: '3.8'
services:
app:
image: docker.io/jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
{% for port in STREAMED_PORTS %}
- '{{ port }}:{{ port }}'
{% endfor %}
environment:
DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
default:
external: true
name: noveria

View file

@ -0,0 +1,30 @@
{% from tpldir+"/map.jinja" import containers %}
include:
- podman.directory
podman_containers_forgejo_compose:
- file.managed:
- name: {{ containers.podman_dir }}/forgejo/docker-compose.yml
- source: {{ tpldir }}/files/forgejo_docker-compose.yml.jinja
- template: jinja
- context:
MARIADB_USER: {{ salt['pillar.get']('podman:containers:mariadb:user') }}
MARIADB_USER_PASSWORD: {{ salt['pillar.get']('podman:containers:mariadb:userpwd') }}
- user: puser
- group: puser
- mode: '0644'
- makedirs: True
- require:
- podman_directory_permissions
podman_containers_forgejo_data_dir:
- file.directory:
- name: {{ containers.podman_dir }}/forgejo/data
- user: puser
- group: puser
- dir_mode: '0755'
- file_mode: '0644'
- makedirs: True
- require:
- podman_directory_permissions

View file

@ -0,0 +1,4 @@
include:
- .npm
- .mariadb
- .forgejo

View file

@ -0,0 +1,3 @@
{% set containers = {
'podman_dir': '/opt/podman'
} %}

View file

@ -0,0 +1,31 @@
{% from tpldir+"/map.jinja" import containers %}
include:
- podman.directory
podman_containers_mariadb_compose:
- file.managed:
- name: {{ containers.podman_dir }}/mariadb/docker-compose.yml
- source: {{ tpldir }}/files/mariadb_docker-compose.yml.jinja
- template: jinja
- context:
MARIADB_ROOT_PASSWORD: {{ salt['pillar.get']('podman:containers:mariadb:rootpwd') }}
MARIADB_USER: {{ salt['pillar.get']('podman:containers:mariadb:user') }}
MARIADB_USER_PASSWORD: {{ salt['pillar.get']('podman:containers:mariadb:userpwd') }}
- user: puser
- group: puser
- mode: '0644'
- makedirs: True
- require:
- podman_directory_permissions
podman_containers_mariadb_data_dir:
- file.directory:
- name: {{ containers.podman_dir }}/mariadb/data
- user: puser
- group: puser
- dir_mode: '0755'
- file_mode: '0644'
- makedirs: True
- require:
- podman_directory_permissions

40
podman/containers/npm.sls Normal file
View file

@ -0,0 +1,40 @@
{% from tpldir+"/map.jinja" import containers %}
include:
- podman.directory
podman_containers_npm_compose:
- file.managed:
- name: {{ containers.podman_dir }}/npm/docker-compose.yml
- source: {{ tpldir }}/files/npm_docker-compose.yml.jinja
- template: jinja
- context:
STREAMED_PORTS: [22]
- user: puser
- group: puser
- mode: '0644'
- makedirs: True
- require:
- podman_directory_permissions
podman_containers_npm_data_dir:
- file.directory:
- name: {{ containers.podman_dir }}/npm/data
- user: puser
- group: puser
- dir_mode: '0755'
- file_mode: '0644'
- makedirs: True
- require:
- podman_directory_permissions
podman_containers_npm_letsencrypt_dir:
- file.directory:
- name: {{ containers.podman_dir }}/npm/letsencrypt
- user: puser
- group: puser
- dir_mode: '0755'
- file_mode: '0644'
- makedirs: True
- require:
- podman_directory_permissions

12
podman/directory.sls Normal file
View file

@ -0,0 +1,12 @@
include:
- .user
podman_directory_permissions:
file.directory:
- name: /opt/podman
- user: puser
- group: puser
- dir_mode: '0755'
- file_mode: '0644'
- require:
- podman_user_puser

View file

@ -2,4 +2,6 @@ include:
- .pkg
- .rootless
- .user
- .directory
- .service
- .containers

View file

@ -41,17 +41,18 @@ podman_rootless_modules:
- text:
- tun
- fuse
- ip_tables
podman_rootless_subgid:
file.append:
- name: /etc/subgid
- text: puser:100000:65536
- require:
- podman_user
- podman_user_puser
podman_rootless_subuid:
file.append:
- name: /etc/subuid
- text: puser:100000:65536
- require:
- podman_user
- podman_user_puser

View file

@ -1,7 +1,7 @@
include:
- .pkg
podman_user:
podman_user_puser:
user.present:
- name: puser
- uid: 2000
@ -20,4 +20,4 @@ podman_user_openssh_keys:
- user: puser
- group: puser
- require:
- podman_user
- podman_user_puser