Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cc9c76d958 | |||
| 3fd5a39866 | |||
| 05fe650895 | |||
| 0b3b42d103 | |||
| 9115efd9bb | |||
| 7cff89b4cf | |||
| 8a442b3b91 | |||
| 584d304497 | |||
| 657dffc87e | |||
| 1f22440560 | |||
| 8aa50012d4 | |||
| 3897475c0f | |||
| 73f8b02e92 |
@@ -49,7 +49,7 @@ jobs:
|
||||
tea login default gitea-rinoa
|
||||
pr_index_old=$(tea pr ls --repo ${{ github.repository }} --state all --fields index,title,head --output csv | sed -e 's|"||g' | egrep '^[0-9]' | head -1 | awk -F"," '{print $1}')
|
||||
pr_index_new=$(expr ${pr_index_old} + 1)
|
||||
tea pr c -r ${{ github.repository }} -t "Automated PR for ${{ github.ref_name }} - #${pr_index_new}" -d "Automatically created PR for branch: ${{ github.ref_name }}" -a ${{ github.actor }} -L "Docker Compose, Ansible Configs.j2"
|
||||
tea pr c -r ${{ github.repository }} -t "Automated PR for ${{ github.ref_name }} - #${pr_index_new}" -d "Automatically created PR for branch: ${{ github.ref_name }}" -a ${{ github.actor }} -L "Ansible Configs.j2"
|
||||
- name: Gotify Notification
|
||||
uses: eikendev/gotify-action@master
|
||||
with:
|
||||
|
||||
@@ -50,7 +50,7 @@ jobs:
|
||||
tea login default gitea-rinoa
|
||||
pr_index_old=$(tea pr ls --repo ${{ github.repository }} --state all --fields index,title,head --output csv | sed -e 's|"||g' | egrep '^[0-9]' | head -1 | awk -F"," '{print $1}')
|
||||
pr_index_new=$(expr ${pr_index_old} + 1)
|
||||
tea pr c -r ${{ github.repository }} -t "Automated PR for ${{ github.ref_name }} - #${pr_index_new}" -d "Automatically created PR for branch: ${{ github.ref_name }}" -a ${{ github.actor }} -L "Docker Compose, Ansible Configs.j2"
|
||||
tea pr c -r ${{ github.repository }} -t "Automated PR for ${{ github.ref_name }} - #${pr_index_new}" -d "Automatically created PR for branch: ${{ github.ref_name }}" -a ${{ github.actor }} -L "Docker Compose"
|
||||
- name: Gotify Notification
|
||||
uses: eikendev/gotify-action@master
|
||||
with:
|
||||
@@ -66,6 +66,7 @@ jobs:
|
||||
VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }}
|
||||
VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
|
||||
VAULT_NAMESPACE: ""
|
||||
RINOA_REGISTRY_PASSWORD: ${{ secrets.BOT_GITEA_PASSWORD }}
|
||||
outputs:
|
||||
svc_deploy_list: ${{ steps.modded_svcs.outputs.rinoa_svcs }}
|
||||
steps:
|
||||
@@ -76,7 +77,7 @@ jobs:
|
||||
git fetch origin ${{ github.event.pull_request.base.ref }}
|
||||
- name: Login to Gitea Container Registry
|
||||
run: |
|
||||
docker login -u gitea-sonarqube-bot -p ${{ secrets.BOT_GITEA_PASSWORD }} git.trez.wtf
|
||||
docker login -u gitea-sonarqube-bot -p ${RINOA_REGISTRY_PASSWORD} git.trez.wtf
|
||||
- name: Save both versions of docker-compose.yml
|
||||
run: |
|
||||
git show origin/main:docker-compose.yml > docker-compose-main.yml || touch docker-compose-main.yml
|
||||
@@ -135,14 +136,17 @@ jobs:
|
||||
- name: Docker Compose Dry Run
|
||||
timeout-minutes: 360
|
||||
continue-on-error: true
|
||||
uses: keatonLiu/docker-compose-remote-action@v1.2
|
||||
uses: chaplyk/docker-compose-remote-action@v1.1
|
||||
with:
|
||||
docker_compose_file: docker-compose.yml
|
||||
docker_args: -d --remove-orphans --pull missing ${{ steps.modded_svcs.outputs.rinoa_svcs }}
|
||||
ssh_user: gitea-deploy
|
||||
ssh_host: 192.168.1.254
|
||||
ssh_host_public_key: ${{ secrets.RINOA_GITEA_PUBLIC_SSH_KEY }}
|
||||
ssh_private_key: ${{ secrets.RINOA_GITEA_PRIVATE_SSH_KEY }}
|
||||
ssh_port: 22
|
||||
ssh_user: gitea-deploy
|
||||
ssh_key: ${{ secrets.RINOA_GITEA_PRIVATE_SSH_KEY }}
|
||||
service: ${{ steps.modded_svcs.outputs.rinoa_svcs }}
|
||||
compose_file: docker-compose.yml
|
||||
pull: false
|
||||
build: false
|
||||
options: -d --remove-orphans
|
||||
env:
|
||||
DOCKER_HOST: tcp://dockerproxy:2375
|
||||
- name: Gotify Notification
|
||||
@@ -295,11 +299,13 @@ jobs:
|
||||
docker-compose-deploy:
|
||||
name: Docker Compose Deployment
|
||||
runs-on: ubuntu-latest
|
||||
needs: [pr-merge]
|
||||
needs: [docker-compose-dry-run, pr-merge]
|
||||
env:
|
||||
VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }}
|
||||
VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
|
||||
DOCKER_HOST: tcp://dockerproxy:2375
|
||||
RINOA_REGISTRY_PASSWORD: ${{ secrets.BOT_GITEA_PASSWORD }}
|
||||
DOCKER_SVC_LIST: ${{ needs.docker-compose-dry-run.outputs.svc_deploy_list }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
@@ -319,7 +325,7 @@ jobs:
|
||||
uses: cpanato/vault-installer@main
|
||||
- name: Login to Gitea Container Registry
|
||||
run: |
|
||||
docker login -u gitea-sonarqube-bot -p ${{ secrets.BOT_GITEA_PASSWORD }} git.trez.wtf
|
||||
docker login -u gitea-sonarqube-bot -p ${RINOA_REGISTRY_PASSWORD} git.trez.wtf
|
||||
- name: Gotify Notification
|
||||
uses: eikendev/gotify-action@master
|
||||
with:
|
||||
@@ -330,17 +336,22 @@ jobs:
|
||||
- name: Generate .env file for deployment
|
||||
run: |
|
||||
vault kv get -format=json rinoa-docker/env | jq -r '.data.data' | jq -r 'keys[] as $k | "\($k)='\''\(.[$k])'\''"' > .env
|
||||
- name: Docker Compose Deployment
|
||||
- name: Docker Compose Dry Run
|
||||
timeout-minutes: 360
|
||||
continue-on-error: true
|
||||
uses: keatonLiu/docker-compose-remote-action@v1.2
|
||||
uses: chaplyk/docker-compose-remote-action@v1.1
|
||||
env:
|
||||
DOCKER_HOST: tcp://dockerproxy:2375
|
||||
with:
|
||||
docker_compose_file: docker-compose.yml
|
||||
docker_args: -d --remove-orphans --pull missing ${{ docker-compose-dry-run.outputs.svc_deploy_list }}
|
||||
ssh_user: gitea-deploy
|
||||
ssh_host: 192.168.1.254
|
||||
ssh_host_public_key: ${{ secrets.RINOA_GITEA_PUBLIC_SSH_KEY }}
|
||||
ssh_private_key: ${{ secrets.RINOA_GITEA_PRIVATE_SSH_KEY }}
|
||||
ssh_port: 22
|
||||
ssh_user: gitea-deploy
|
||||
ssh_key: ${{ secrets.RINOA_GITEA_PRIVATE_SSH_KEY }}
|
||||
service: ${DOCKER_SVC_LIST}
|
||||
compose_file: docker-compose.yml
|
||||
pull: false
|
||||
build: false
|
||||
options: -d --remove-orphans
|
||||
- name: Gotify Notification
|
||||
uses: eikendev/gotify-action@master
|
||||
with:
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
| dawarich-sidekiq | freikin/dawarich:latest |
|
||||
| dead-man-hand | ghcr.io/bkupidura/dead-man-hand:latest |
|
||||
| docker-socket-proxy | ghcr.io/tecnativa/docker-socket-proxy:latest |
|
||||
| dockflare | alplat/dockflare:stable |
|
||||
| duplicati | lscr.io/linuxserver/duplicati:latest |
|
||||
| excalidraw | excalidraw/excalidraw:latest |
|
||||
| explo | ghcr.io/lumepart/explo:latest |
|
||||
@@ -38,7 +39,7 @@
|
||||
| flaresolverr | ghcr.io/flaresolverr/flaresolverr:latest |
|
||||
| freescout | tiredofit/freescout:latest |
|
||||
| ghost | ghost:latest |
|
||||
| gitea | gitea/gitea:1.23.1 |
|
||||
| gitea | gitea/gitea:1.24.0 |
|
||||
| gitea-db | postgres:14 |
|
||||
| gitea-runner | gitea/act_runner:latest |
|
||||
| gitea-sonarqube-bot | justusbunsi/gitea-sonarqube-bot:v0.4.0 |
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
urls:
|
||||
- gotify://gotify/{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['APPRISE_GOTIFY_TOKEN'] }}
|
||||
- mailtos://{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['POSTAL_SMTP_AUTH_USER'] }}:{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['POSTAL_SMTP_AUTH_PASSWORD'] }}@trez.wtf25?smtp=postal-smtp&from=noreply@trez.wtf
|
||||
- mailto://{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['POSTAL_SMTP_AUTH_USER'] }}:{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['POSTAL_SMTP_AUTH_PASSWORD'] }}@trez.wtf25?smtp=postal-smtp&from=noreply@trez.wtf
|
||||
@@ -0,0 +1,49 @@
|
||||
common:
|
||||
daemonize: false
|
||||
log_media: stdout
|
||||
log_level: info
|
||||
log_dir: /var/log/
|
||||
config_paths:
|
||||
config_dir: /etc/crowdsec/
|
||||
data_dir: /var/lib/crowdsec/data/
|
||||
simulation_path: /etc/crowdsec/simulation.yaml
|
||||
hub_dir: /etc/crowdsec/hub/
|
||||
index_path: /etc/crowdsec/hub/.index.json
|
||||
notification_dir: /etc/crowdsec/notifications/
|
||||
plugin_dir: /usr/local/lib/crowdsec/plugins/
|
||||
crowdsec_service:
|
||||
acquisition_path: /etc/crowdsec/acquis.yaml
|
||||
acquisition_dir: /etc/crowdsec/acquis.d
|
||||
parser_routines: 1
|
||||
plugin_config:
|
||||
user: nobody
|
||||
group: nobody
|
||||
cscli:
|
||||
output: human
|
||||
db_config:
|
||||
log_level: info
|
||||
type: sqlite
|
||||
db_path: /var/lib/crowdsec/data/crowdsec.db
|
||||
flush:
|
||||
max_items: 5000
|
||||
max_age: 7d
|
||||
use_wal: false
|
||||
api:
|
||||
client:
|
||||
insecure_skip_verify: false
|
||||
credentials_path: /etc/crowdsec/local_api_credentials.yaml
|
||||
server:
|
||||
log_level: info
|
||||
listen_uri: 0.0.0.0:8080
|
||||
profiles_path: /etc/crowdsec/profiles.yaml
|
||||
trusted_ips: # IP ranges, or IPs which can have admin API access
|
||||
- 127.0.0.1
|
||||
- ::1
|
||||
online_client: # Central API credentials (to push signals and receive bad IPs)
|
||||
credentials_path: /etc/crowdsec/online_api_credentials.yaml
|
||||
enable: true
|
||||
prometheus:
|
||||
enabled: true
|
||||
level: full
|
||||
listen_addr: 0.0.0.0
|
||||
listen_port: 6060
|
||||
@@ -0,0 +1,6 @@
|
||||
{% set vault_addr = 'https://vault.trez.wtf' %}
|
||||
{% set secrets_path = 'rinoa-docker/env' %}
|
||||
|
||||
url: https://api.crowdsec.net/
|
||||
login: {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['CROWDSEC_ONLINE_PASSWORD'] }}
|
||||
password: {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['CROWDSEC_ONLINE_PASSWORD'] }}
|
||||
+71
-50
@@ -1,13 +1,5 @@
|
||||
name: compose
|
||||
networks:
|
||||
bitmagnet:
|
||||
driver: bridge
|
||||
ipam:
|
||||
config:
|
||||
- gateway: 192.168.55.1
|
||||
subnet: 192.168.55.0/27
|
||||
driver: default
|
||||
name: compose_bitmagnet
|
||||
default:
|
||||
name: compose_default
|
||||
nextcloud-aio:
|
||||
@@ -55,10 +47,10 @@ x-signoz-common: &signoz-common
|
||||
# networks:
|
||||
# - signoz-net
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
options:
|
||||
max-size: 50m
|
||||
max-file: "3"
|
||||
# logging:
|
||||
# options:
|
||||
# max-size: 50m
|
||||
# max-file: "3"
|
||||
x-signoz-clickhouse-defaults: &signoz-clickhouse-defaults
|
||||
<<: *signoz-common
|
||||
# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
|
||||
@@ -730,36 +722,13 @@ services:
|
||||
security_opt:
|
||||
- no-new-privileges=true
|
||||
volumes:
|
||||
- source: ${DOCKER_VOLUME_CONFIG}/crowdsec/config.yaml.local
|
||||
target: /etc/crowdsec/config.yaml.local
|
||||
type: bind
|
||||
bind:
|
||||
create_host_path: true
|
||||
- source: ${DOCKER_VOLUME_CONFIG}/crowdsec/local_api_credentials.yaml.local
|
||||
target: /etc/crowdsec/local_api_credentials.yaml.local
|
||||
type: bind
|
||||
bind:
|
||||
create_host_path: true
|
||||
- read_only: true
|
||||
source: ${DOCKER_VOLUME_CONFIG}/swag/log/nginx
|
||||
target: /var/log/swag
|
||||
type: bind
|
||||
bind:
|
||||
create_host_path: true
|
||||
- source: crowdsec-config
|
||||
target: /etc/crowdsec
|
||||
type: volume
|
||||
volume: {}
|
||||
- source: crowdsec-db
|
||||
target: /var/lib/crowdsec/data
|
||||
type: volume
|
||||
volume: {}
|
||||
- bind:
|
||||
create_host_path: true
|
||||
read_only: true
|
||||
source: /var/log/journal
|
||||
target: /var/log/host
|
||||
type: bind
|
||||
- ${DOCKER_VOLUME_CONFIG}/crowdsec/config.yaml.local:/etc/crowdsec/config.yaml
|
||||
- ${DOCKER_VOLUME_CONFIG}/crowdsec/local-api-credentials.yaml:/etc/crowdsec/local_api_credentials.yaml
|
||||
- ${DOCKER_VOLUME_CONFIG}/crowdsec/online-api-credentials.yaml:/etc/crowdsec/online_api_credentials.yaml
|
||||
- ${DOCKER_VOLUME_CONFIG}/swag/log/nginx:/var/log/swag:ro
|
||||
- crowdsec-config:/etc/crowdsec
|
||||
- crowdsec-db:/var/lib/crowdsec/data
|
||||
- /var/log/journal:/var/log/host:ro
|
||||
crowdsec-dashboard:
|
||||
container_name: crowdsec-dashboard
|
||||
depends_on:
|
||||
@@ -1047,6 +1016,62 @@ services:
|
||||
source: /var/run/docker.sock
|
||||
target: /var/run/docker.sock
|
||||
type: bind
|
||||
dockflare:
|
||||
container_name: dockflare
|
||||
environment:
|
||||
AGENT_STATUS_UPDATE_INTERVAL_SECONDS: 10
|
||||
CF_ACCOUNT_ID: ${CLOUDFLARE_ACCOUNT_ID}
|
||||
CF_API_TOKEN: ${CLOUDFLAREDDNS_ENVIRONMENT_APITOKEN}
|
||||
CF_ZONE_ID: ${CLOUDFLARE_ZONE_ID}
|
||||
CLEANUP_INTERVAL_SECONDS: 300
|
||||
CLOUDFLARED_NETWORK_NAME: compose_default
|
||||
DEFAULT_NO_TLS_VERIFY: false
|
||||
GRACE_PERIOD_SECONDS: 600
|
||||
LABEL_PREFIX: cloudflare.tunnel
|
||||
MAX_CONCURRENT_DNS_OPS: 3
|
||||
RECONCILIATION_BATCH_SIZE: 3
|
||||
SCAN_ALL_NETWORKS: false
|
||||
STATE_FILE_PATH: /app/data/state.json
|
||||
TRUSTED_PROXIES: 192.168.1.0/24,172.18.0.0/16
|
||||
TUNNEL_DNS_SCAN_ZONE_NAMES:
|
||||
TUNNEL_NAME: dockflared-tunnel
|
||||
TZ: ${TZ}
|
||||
image: alplat/dockflare:stable # Or :unstable for the latest features
|
||||
labels:
|
||||
homepage.group: Privacy/Security
|
||||
homepage.name: DockFlare
|
||||
homepage.href: https://cftunn.${MY_TLD}
|
||||
homepage.icon: /icons/dockflare.png
|
||||
homepage.description: Cloudflare Tunnel controller
|
||||
swag: enable
|
||||
swag_auth: authelia
|
||||
swag_proto: http
|
||||
swag_url: cftunn.${MY_TLD}
|
||||
swag.uptime-kuma.enabled: true
|
||||
swag.uptime-kuma.monitor.url: https://cftunn.${MY_TLD}
|
||||
swag.uptime-kuma.monitor.interval: 300
|
||||
### EXAMPLE CF TUNNEL LABELS ###
|
||||
# Enable DockFlare management for this container
|
||||
# - "cloudflare.tunnel.enable=true"
|
||||
# The public hostname to expose
|
||||
# - "cloudflare.tunnel.hostname=my-service.example.com"
|
||||
# The internal service address (protocol://container_name_or_ip:port)
|
||||
# Service type (http, https, tcp, ssh, rdp, http_status) is inferred from the prefix.
|
||||
# - "cloudflare.tunnel.service=http://my-service:80"
|
||||
# Optional: Specify a URL path. Only requests to hostname/path will match.
|
||||
# - "cloudflare.tunnel.path=/app"
|
||||
# Optional: Specify a different Cloudflare Zone for this hostname
|
||||
# - "cloudflare.tunnel.zonename=another.example.com"
|
||||
# Optional: Disable TLS verification if your internal service uses HTTP or a self-signed cert
|
||||
# - "cloudflare.tunnel.no_tls_verify=true"
|
||||
# Optional: Specify Origin Server Name (SNI) for TLS connection to origin
|
||||
# - "cloudflare.tunnel.originsrvname=internal.service.local"
|
||||
ports:
|
||||
- 20756:5000
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- dockflare_data:/app/data
|
||||
duplicati:
|
||||
container_name: duplicati
|
||||
environment:
|
||||
@@ -1320,7 +1345,7 @@ services:
|
||||
GITEA__mailer__SMTP_PORT: 25
|
||||
GITEA__mailer__USER: ${POSTAL_SMTP_AUTH_USER}
|
||||
GITEA__mailer__PASSWD: ${POSTAL_SMTP_AUTH_PASSWORD}
|
||||
image: gitea/gitea:1.23.1
|
||||
image: gitea/gitea:1.24.0
|
||||
labels:
|
||||
homepage.group: Code/DevOps
|
||||
homepage.name: Gitea
|
||||
@@ -1427,13 +1452,7 @@ services:
|
||||
VPN_SERVICE_PROVIDER: private internet access
|
||||
expose:
|
||||
- 8000
|
||||
extra_hosts:
|
||||
- bitmagnet-pg-db:192.168.55.8
|
||||
image: qmcgaw/gluetun:latest
|
||||
networks:
|
||||
bitmagnet:
|
||||
ipv4_address: 192.168.55.7
|
||||
default: null
|
||||
ports:
|
||||
- 3333:3333
|
||||
- 3334:3334
|
||||
@@ -4600,7 +4619,7 @@ services:
|
||||
- --copy-path=/var/tmp/collector-config.yaml
|
||||
- --feature-gates=-pkg.translator.prometheus.NormalizeName
|
||||
depends_on:
|
||||
signoz:
|
||||
signoz-app:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
OTEL_RESOURCE_ATTRIBUTES: host.name=signoz-host,os.type=linux
|
||||
@@ -5435,6 +5454,8 @@ volumes:
|
||||
name: dawarich_public
|
||||
dawarich_watched:
|
||||
name: dawarich_watched
|
||||
dockflare_data:
|
||||
name: dockflare_data
|
||||
fastenhealth-cache:
|
||||
name: fastenhealth-cache
|
||||
fastenhealth-db:
|
||||
|
||||
Reference in New Issue
Block a user