Move to coreos-config directory

This commit is contained in:
2022-07-14 00:21:40 +02:00
parent bb9c2d5eef
commit ec43fe2fd3
48 changed files with 0 additions and 0 deletions

128
coreos-config/.gitignore vendored Normal file
View File

@ -0,0 +1,128 @@
# Created by https://www.toptal.com/developers/gitignore/api/vagrant,git,vim,ansible,linux,windows,osx
# Edit at https://www.toptal.com/developers/gitignore?templates=vagrant,git,vim,ansible,linux,windows,osx
### Ansible ###
*.retry
### Git ###
# Created by git for backups. To disable backups in Git:
# $ git config --global mergetool.keepBackup false
*.orig
# Created by git when using merge tools for conflicts
*.BACKUP.*
*.BASE.*
*.LOCAL.*
*.REMOTE.*
*_BACKUP_*.txt
*_BASE_*.txt
*_LOCAL_*.txt
*_REMOTE_*.txt
### Linux ###
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### OSX ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Vagrant ###
# General
.vagrant/
# Log files (if you are creating logs in debug mode, uncomment this)
# *.log
### Vagrant Patch ###
*.box
### Vim ###
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
Sessionx.vim
# Temporary
.netrwhist
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~
### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# End of https://www.toptal.com/developers/gitignore/api/vagrant,git,vim,ansible,linux,windows,osx
/vagrant.ign
/setup.ign
backups/*
render/
borgbackup

18
coreos-config/Makefile Normal file
View File

@ -0,0 +1,18 @@
provision:
vagrant provision
down:
vagrant destroy -f
clean: down up
up: vagrant.ign
vagrant up
vagrant.ign: vagrant_INSECURE.ign setup.ign
butane --pretty --strict -d . vagrant.bu > vagrant.ign
setup.ign: setup.bu
butane --pretty --strict -d . setup.bu > setup.ign
.PHONY: provision down up clean

97
coreos-config/Vagrantfile vendored Normal file
View File

@ -0,0 +1,97 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'json'
ignition_file = File.join(File.dirname(__FILE__), 'vagrant.ign')
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# config.disksize.size = "30G"
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "fedora-coreos"
config.vm.provider :libvirt do |libvirt|
libvirt.disk_bus = 'ide'
libvirt.driver = 'kvm'
libvirt.memory = 4096
libvirt.cpus = 4
libvirt.machine_virtual_size = 60
libvirt.qemuargs :value => '-fw_cfg'
libvirt.qemuargs :value => "name=opt/com.coreos/config,file=#{ignition_file}"
end
config.vm.provision "ansible" do |ansible|
ansible.playbook = "playbook.yaml"
ansible.limit = "all,localhost"
ansible.ask_vault_pass = true
end
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# NOTE: This will enable public access to the opened port
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine and only allow access
# via 127.0.0.1 to disable public access
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network :private_network,
:ip => "192.168.33.10",
:libvirt__guest_ipv6 => "yes",
:libvirt__ipv6_address => "fddd::13",
:libvirt__ipv6_prefix => "64"
config.vm.network "forwarded_port", guest: 80, host: 80
config.vm.network "forwarded_port", guest: 443, host: 443
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "./backups", "/home/core/backups"
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
# config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
# vb.memory = "1024"
# end
#
# View the documentation for the provider you are using for more
# information on available options.
# Enable provisioning with a shell script. Additional provisioners such as
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
# documentation for more information about their specific syntax and use.
# config.vm.provision "shell", inline: <<-SHELL
# apt-get update
# apt-get install -y apache2
# SHELL
end

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=traefik

View File

@ -0,0 +1,31 @@
---
version: '3.9'
services:
traefik:
image: traefik:v2.7
container_name: traefik
restart: always
ports:
- "443:443"
- "80:80"
privileged: true
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:z"
- "./traefik.yaml:/etc/traefik/traefik.yaml:Z,ro"
- "acme:/acme"
networks:
- gateway
- default
environment:
CLOUDFLARE_DNS_API_TOKEN: "{{ traefik.CLOUDFLARE_DNS_API_TOKEN }}"
volumes:
acme:
networks:
gateway:
name: gateway
internal: false
default:
driver: bridge
...

View File

@ -0,0 +1,29 @@
log:
level: ERROR
providers:
docker:
network: gateway
exposedbydefault: false
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
permanent: true
websecure:
address: ":443"
http:
tls:
certResolver: letsencrypt
certificatesResolvers:
letsencrypt:
acme:
email: webmaster@tobiasmanske.de
storage: /acme/acme.json
# caServer: "https://acme-staging-v02.api.letsencrypt.org/directory"
dnsChallenge:
provider: cloudflare

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=registry

View File

@ -0,0 +1,30 @@
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
delete:
enabled: true
auth:
htpasswd:
realm: Registry Realm
path: /auth/htpasswd
http:
addr: :5000
headers:
Access-Control-Expose-Headers: ['Docker-Content-Digest']
Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
Access-Control-Allow-Origin: ['https://registry-ui.tobiasmanske.de']
Access-Control-Allow-Credentials: [true]
Access-Control-Allow-Headers: ['Authorization', 'Accept']
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3

View File

@ -0,0 +1,50 @@
---
services:
registry:
container_name: registry
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=update"
- "traefik.enable=true"
- "traefik.http.routers.registry.rule=Host(`registry.tobiasmanske.de`)"
- "traefik.http.routers.registry.entryPoints=websecure"
- "traefik.http.services.registry.loadbalancer.server.port=5000"
image: 'registry:2'
networks:
- gateway
- backend
volumes:
- registry_data:/var/lib/registry
- ./htpasswd:/auth/htpasswd:ro,z
- ./config.yaml:/etc/docker/registry/config.yml:ro,z
frontend:
image: joxit/docker-registry-ui:latest
restart: unless-stopped
depends_on:
- registry
environment:
- DELETE_IMAGES=true
- REGISTRY_TITLE=My Private Docker Registry
- NGINX_PROXY_PASS_URL=http://registry:5000
- SINGLE_REGISTRY=true
labels:
- "traefik.enable=true"
- "traefik.http.routers.registryui.rule=Host(`registry-ui.tobiasmanske.de`)"
- "traefik.http.routers.registryui.entryPoints=websecure"
- "traefik.http.services.registryui.loadbalancer.server.port=80"
- "com.centurylinklabs.watchtower.scope=update"
networks:
- gateway
- backend
volumes:
registry_data:
networks:
gateway:
external: true
backend:
internal: true
...

View File

@ -0,0 +1,3 @@
{% for line in registry.HTPASSWD %}
{{ line }}
{% endfor %}

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=gitea

View File

@ -0,0 +1,105 @@
---
version: '3.9'
services:
gitea:
image: gitea/gitea:1
container_name: gitea
environment:
- "USER_UID=1000"
- "USER_GID=1000"
- "GITEA__database__DB_TYPE=postgres"
- "GITEA__database__HOST=db:5432"
- "GITEA__database__NAME={{ gitea.db.name }}"
- "GITEA__database__USER={{ gitea.db.user }}"
- "GITEA__database__PASSWD={{ gitea.db.password }}"
- "GITEA__webhook__ALLOWED_HOST_LIST=*.tobiasmanske.de"
restart: always
networks:
- backend
- gateway
volumes:
- gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.gitea.rule=Host(`git.tobiasmanske.de`)"
- "traefik.http.routers.gitea.entryPoints=websecure"
- "traefik.http.services.gitea.loadbalancer.server.port=3000"
- "com.centurylinklabs.watchtower.scope=update"
ports:
- "7779:22"
depends_on:
- db
db:
image: postgres:14
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=update"
environment:
- POSTGRES_USER="{{ gitea.db.user }}"
- POSTGRES_PASSWORD="{{ gitea.db.password }}"
- POSTGRES_DB="{{ gitea.db.name }}"
networks:
- backend
volumes:
- pg_data:/var/lib/postgresql/data
drone:
image: drone/drone:2
restart: always
environment:
- "DRONE_GITEA_SERVER=https://git.tobiasmanske.de"
- "DRONE_GITEA_CLIENT_ID={{ gitea.drone.client_id }}"
- "DRONE_GIT_ALWAYS_AUTH=true"
- "DRONE_GITEA_CLIENT_SECRET={{ gitea.drone.client_secret }}"
- "DRONE_RPC_SECRET={{ gitea.drone.rpc_secret }}"
- "DRONE_SERVER_HOST=drone.tobiasmanske.de"
- "DRONE_SERVER_PROTO=https"
- "DRONE_IMAGE_CLONE=openjdk:17-bullseye"
networks:
- backend
- gateway
volumes:
- drone_data:/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.drone.rule=Host(`drone.tobiasmanske.de`)"
- "traefik.http.routers.drone.entryPoints=websecure"
- "traefik.http.services.drone.loadbalancer.server.port=80"
- "com.centurylinklabs.watchtower.scope=update"
depends_on:
- gitea
drone_runner:
image: drone/drone-runner-docker:1.8
restart: always
privileged: true
labels:
- "com.centurylinklabs.watchtower.scope=update"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- "DRONE_RPC_SECRET={{ gitea.drone.rpc_secret }}"
- "DRONE_RPC_HOST=drone.tobiasmanske.de"
- "DRONE_RPC_PROTO=https"
- "DRONE_RUNNER_CAPACITY=2"
- "DRONE_RUNNER_NAME=docker-01"
- "DRONE_RUNNER_CLONE_IMAGE=drone/git:linux-amd64"
- "DRONE_RUNNER_VOLUMES=/etc/hosts:/etc/hosts"
networks:
- backend
- default
networks:
backend:
internal: true
gateway:
external: true
volumes:
gitea_data:
drone_data:
pg_data:

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=wireguard

View File

@ -0,0 +1,26 @@
---
version: '3.9'
services:
wireguard:
image: linuxserver/wireguard:latest
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
security_opt:
- label:disable
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- ./wg0.conf:/config/wg0.conf:ro,z
- /lib/modules:/lib/modules:ro
labels:
- "com.centurylinklabs.watchtower.scope=update"
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv6.conf.all.disable_ipv6=0
restart: unless-stopped

View File

@ -0,0 +1,17 @@
[Interface]
Address = 10.2.0.1/16
Address = fd10:4000::1/32
MTU = 1420
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = {{ wireguard.private_key }}
{% for peer in wireguard_peers %}
# Peer: {{ peer.name }}
[Peer]
PublicKey = {{ peer.pubkey }}
AllowedIPs = {{ peer.allowedips | join(", ") }}
{% endfor %}

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=hedgedoc

View File

@ -0,0 +1,66 @@
---
version: '3'
services:
database:
image: postgres:13-alpine
environment:
- POSTGRES_USER={{ hedgedoc.db.user }}
- POSTGRES_PASSWORD={{ hedgedoc.db.password }}
- POSTGRES_DB={{ hedgedoc.db.name }}
volumes:
- database:/var/lib/postgresql/data
labels:
- "com.centurylinklabs.watchtower.scope=update"
restart: always
networks:
- backend
app:
# Make sure to use the latest release from https://hedgedoc.org/latest-release
image: quay.io/hedgedoc/hedgedoc:1.9.3
environment:
- CMD_DB_URL=postgres://{{ hedgedoc.db.user }}:{{ hedgedoc.db.password }}@database:5432/{{ hedgedoc.db.name }}
- CMD_DOMAIN=doc.tobiasmanske.de
- CMD_ALLOW_ORIGIN=doc.tobiasmanske.de,localhost
- CMD_CSP_ENABLE=true
- CMD_PROTOCOL_USESSL=true
- CMD_PROTOCOL_USE_SSL=true
- CMD_ALLOW_EMAIL_REGISTER=false
- CMD_ALLOW_ANONYMOUS=false
- CMD_ALLOW_ANONYMOUS_EDITS=true
- CMD_ALLOW_FREEURL=true
- CMD_DEFAULT_PERMISSION=private
- CMD_SESSION_SECRET={{ hedgedoc.cmd.session_secret }}
- CMD_OAUTH2_CLIENT_ID={{ hedgedoc.cmd.client_id }}
- CMD_OAUTH2_CLIENT_SECRET={{ hedgedoc.cmd.client_secret }}
- CMD_OAUTH2_AUTHORIZATION_URL={{ hedgedoc.cmd.authorization_url }}
- CMD_OAUTH2_TOKEN_URL={{ hedgedoc.cmd.token_url }}
- CMD_OAUTH2_USER_PROFILE_URL={{ hedgedoc.cmd.user_profile_url }}
- CMD_OAUTH2_USER_PROFILE_USERNAME_ATTR=ocs.data.id
- CMD_OAUTH2_USER_PROFILE_DISPLAY_NAME_ATTR=ocs.data.display-name
- CMD_OAUTH2_USER_PROFILE_EMAIL_ATTR=ocs.data.email
volumes:
- uploads:/hedgedoc/public/uploads
restart: always
labels:
- "traefik.enable=true"
- "traefik.http.routers.hedgedoc.rule=Host(`doc.tobiasmanske.de`)"
- "traefik.http.routers.hedgedoc.entryPoints=websecure"
- "traefik.http.services.hedgedoc.loadbalancer.server.port=3000"
- "com.centurylinklabs.watchtower.scope=update"
depends_on:
- database
networks:
- backend
- gateway
volumes:
database:
uploads:
networks:
gateway:
external: true
backend:
internal: true
...

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=miniflux

View File

@ -0,0 +1,49 @@
version: '3'
services:
miniflux:
image: miniflux/miniflux:latest
restart: unless-stopped
depends_on:
db:
condition: service_healthy
environment:
- DATABASE_URL=postgres://{{ miniflux.db.user }}:{{ miniflux.db.password }}@db/{{ miniflux.db.name }}?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME={{ miniflux.admin.user }}
- ADMIN_PASSWORD={{ miniflux.admin.password }}
- BASE_URL=https://rss.tobiasmanske.de
labels:
- "traefik.enable=true"
- "traefik.http.routers.miniflux.rule=Host(`rss.tobiasmanske.de`)"
- "traefik.http.routers.miniflux.entryPoints=websecure"
- "traefik.http.services.miniflux.loadbalancer.server.port=8080"
- "com.centurylinklabs.watchtower.scope=update"
networks:
- backend
- gateway
db:
image: postgres:13
restart: unless-stopped
environment:
- POSTGRES_USER={{ miniflux.db.user }}
- POSTGRES_PASSWORD={{ miniflux.db.password }}
volumes:
- database:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
networks:
- backend
volumes:
database:
networks:
backend:
internal: true
gateway:
external: true
name: gateway

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=nextcloud

View File

@ -0,0 +1,62 @@
version: '2'
services:
db:
image: mariadb:latest
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
volumes:
- database:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD={{ nextcloud.db.rootpassword }}
- MYSQL_PASSWORD={{ nextcloud.db.password }}
- MYSQL_DATABASE={{ nextcloud.db.name }}
- MYSQL_USER={{ nextcloud.db.user }}
labels:
- "com.centurylinklabs.watchtower.scope=update"
networks:
- backend
app:
image: registry.tobiasmanske.de/nextcloud:main
restart: always
links:
- db
volumes:
- nc_config:/var/www/html/config
- nc_custom_apps:/var/www/html/custom_apps
- nc_data:/var/www/data
environment:
- MYSQL_PASSWORD={{ nextcloud.db.password }}
- MYSQL_DATABASE={{ nextcloud.db.name }}
- MYSQL_USER={{ nextcloud.db.user }}
- MYSQL_HOST=db
networks:
- backend
- gateway
- default
labels:
- "traefik.enable=true"
- "traefik.http.routers.nextcloud.rule=Host(`wolke.chaoswg.org`)"
- "traefik.http.routers.nextcloud.entryPoints=websecure"
- "traefik.http.services.nextcloud.loadbalancer.server.port=80"
- "traefik.http.middlewares.nextcloud.headers.customrequestheaders.Front-End-Https=on"
- "traefik.http.middlewares.nextcloud.headers.customresponseheaders.Strict-Transport-Security=max-age=15768000; includeSubDomains;"
- "traefik.http.middlewares.nextcloud-dav.replacepathregex.regex=^/.well-known/ca(l|rd)dav"
- "traefik.http.middlewares.nextcloud-dav.replacepathregex.replacement=/remote.php/dav/"
- "traefik.http.middlewares.compression.compress=true"
- "traefik.http.routers.nextcloud.middlewares=nextcloud,nextcloud-dav,compression"
- "com.centurylinklabs.watchtower.scope=update"
volumes:
nc_config:
nc_custom_apps:
nc_data:
database:
networks:
gateway:
external: true
name: gateway
backend:
internal: true

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=searxng

View File

@ -0,0 +1,64 @@
---
version: '3.9'
services:
searxng:
image: searxng/searxng:latest # >.<
container_name: searxng
restart: always
networks:
- gateway
- default
- backend
volumes:
- ./settings.yml:/etc/searxng/settings.yml:ro,z
- ./uwsgi.ini:/etc/searxng/uwsgi.ini:ro,z
labels:
- "traefik.enable=true"
- "traefik.http.routers.searxng.rule=Host(`search.tobiasmanske.de`)"
- "traefik.http.routers.searxng.entryPoints=websecure"
- "traefik.http.services.searxng.loadbalancer.server.port=8080"
- "traefik.http.middlewares.compression.compress=true"
- "traefik.http.routers.searxng.middlewares=compression"
- "com.centurylinklabs.watchtower.scope=update"
redis:
container_name: redis
image: "redis:alpine"
command: redis-server --save "" --appendonly "no"
networks:
- backend
tmpfs:
- /var/lib/redis
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE
# morty:
# container_name: morty
# image: dalf/morty
# restart: always
# command: -timeout 6 -ipv6
# environment:
# - MORTY_KEY={{ search.morty.key }}
# - MORTY_ADDRESS=0.0.0.0:3030
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.morty.rule=Host(`search.tobiasmanske.de`) && PathPrefix(`/morty`)"
# - "traefik.http.routers.morty.entrypoints=websecure"
# - "traefik.http.services.morty.loadbalancer.server.port=3030"
# networks:
# - gateway
# - backend
networks:
gateway:
external: true
backend:
internal: true
volumes:
data:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,49 @@
[uwsgi]
# Who will run the code
uid = searxng
gid = searxng
# Number of workers (usually CPU count)
workers = 4
threads = 4
# The right granted on the created socket
chmod-socket = 666
# Plugin to use and interpretor config
single-interpreter = true
master = true
plugin = python3
lazy-apps = true
enable-threads = true
# Module to import
module = searx.webapp
# Virtualenv and python path
pythonpath = /usr/local/searxng/
chdir = /usr/local/searxng/searx/
# automatically set processes name to something meaningful
auto-procname = true
# Disable request logging for privacy
disable-logging = true
log-5xx = true
# Set the max size of a request (request-body excluded)
buffer-size = 8192
# No keep alive
# See https://github.com/searx/searx-docker/issues/24
add-header = Connection: close
# uwsgi serves the static files
# expires set to one year since there are hashes
static-map = /static=/usr/local/searxng/searx/static
static-expires = /* 31557600
static-gzip-all = True
offload-threads = %k
# Cache
cache2 = name=searxngcache,items=2000,blocks=2000,blocksize=4096,bitmap=1

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=syncthing

View File

@ -0,0 +1,45 @@
$ANSIBLE_VAULT;1.2;AES256;secrets
33356661663637323832343435656464323766303832363037333663393064336439663165313637
6461393832613137623663353337333232616135663938340a666566366335326565613738613930
38373066313664616665633337616138303530343637636162346535633339626236303237393561
3731366337323033310a386562326238663133653666396434663465313936313738313363613762
65643662396237316663306163366636646338663365666632373830363930623534376338396336
30313135623038386564373131613835316166326662313066303061393536613136353065363163
33343438613562336235626437666661346363363933616132353764336633343739616230333438
30333736383434346465666437346137343437366164323964353437643733333066626531383439
35353233376164303336626661366662383535613430363439633131643838333535353833396131
38383530666232643461623565363865323438666333626338313139656563616465626262636639
33653965663166323630373938643638373362313832363331356339353265626262303761316664
30303264386630363530643363346162613539623839653934646330373438396530666436376462
34653365353961663065323730383935396666336163626337633561613139343139316665333839
65656665353436313538636137376633633032383438366665373133396337306138393931653362
66386465336363643035343530376437323064643861363535623135353265393034653936323437
63353537343538383930366334316237376364613730396534356565313135633331663265323030
35646563303031366130383131316637623131396531663862333561396162663361666536306132
32393564383330623739393730386261333038343362626438336462616638616132343035393265
62336338643639333366613163393332336462613230346366616333396234366231636361623838
39373565646131636333393663356130646537356432316261616664356531373063393430653539
30346464656535323164613236303361653033613738333235346230343238623166663462353965
66313632646431346565633339663864613333383432616536386533313863616232323235306165
66376238306537383966373464333532313166393735313535393365616337383034396538343463
38386235326233343132306164376432373361383939633161656232613033363538636435393061
37343837396362653736303436356666666138353735653134336563373430643636356665373236
64373035626461386132666339646466396563623266326637333435633165343034646566326430
66356666626539373462653536313636366530313463313530363538623862626537366639636266
32653137636331616536343934356662656262623762333930653238663563646239643637386165
63613662363235656432313666656331346461343432316530633163303331366239333666633534
64393865366139343135303062366333363332376565646437356164306232643130356261656534
63303339633765373136323665376137376139363265633162653563356262353162643164306430
30306133663565386237373131353232623936623237373739623837643564386131373132316331
31663062363133636335303966356562333438376333356330373166366531393461303037363936
63346630333130303566383264303436393462313431623237373063393033346438633966643062
38396163356265363363396164623664343530383937653663663864626566353365646462666535
36303936653933363964663131376236333965313431653937626332383834373833343462333036
30343537366462376562343865633162383263313365633332396366336238613132313630653763
64343035366561313339316463323134643664616565663331643036306639383163373831376265
66646336316632323034653866653532323934636639383634316163336566383830376238376433
37653137363939643461373538623032613731383731353639313534376466303930363765303637
37626532313430653239663835323633326263656536353330636437376237376339663336666234
39396138323836616432396265626236333134323462623138656534333966613338636132393665
38343662646238363735666564643336383633393963633662333262663131616163643765353232
63613764346437663666

View File

@ -0,0 +1,707 @@
$ANSIBLE_VAULT;1.2;AES256;secrets
31396363353035626663663532343130386633333331666139633636366564343032373361363933
3032383765353730316562626535323963363035633663320a656462373237386562643462373366
31363332373437333766636330363739663339333433303561333337356664306265303062616139
3239313330313733340a373162643631353534383566303634626433306332653230313639616630
66643830376466373662346365323933643131643639333965653562653730383465656566663139
64626631393036353361643737666436343630376436643863616439313133663030306163316664
64323132376534663038323562316636303736316461663339623262333461613230343865393035
37336531663437333439383033373739373966343337613963306364613962623064396332313132
35636338333838633438313264313833646666336134613132356334303365326333353635363530
37633436633764356264376135396163363536343939363836386265303730393331346538353864
30663931343830646336636662613230636534343961396436353264326138303539633863616662
63323830323365313733666665613864376534336664303863626538636562373337326430393266
33613537383839373631343732663437663965303636643536393863306266626636366435653363
35323939643537366239333563633937613965613135383530336236343066363632613866353433
61653663623336333532366166656631323135316365656433353230313862653631393064656434
33656461383338613634393038363730363761383465396465626434336239373239346365656432
39393739383732326361623861643436623937623361633331363534303336653261323639383030
32623137343734656333613330643663383534353532623237616161623538653235303036616133
33363466373464376565373766373931393739636233316430363337396465303031346331393031
31626536333538636130386564373930363565393735343939323737663237353965636337376136
33653131356164396165623238653632333136666532336531326132666132383165636230383334
65626638383839623531346161336433346263333263643431333335363036383232656238313166
63333337363832336630333461356165663731396633326266353763353638353037313731336532
37653863373834326531373336323133323461396332373931393030326433623531346364616431
32363364393238636261646439393238306333326637336132623438636265326639393232353962
36623535336439363431306135393861303338373931613563343132396661613032633266373161
31333434393936613030366137313664626664646238396537336462343165616637633461623730
32623464663364336266333530656532333732356438323933383838616336663338326639313932
61393136656361313537613630633764646230656263393565363863353666646431333133376264
30636630306466343532626334323463653131373062656265376464386666653932656638626165
62333061346535386438323463313363343934663666663733663239316235373738386339313936
61353630613237373036343839306364636461363061366665353838643063386233643364313162
32376331306462313733366131643464373366663266363037323261313361363638646235643934
37306231633363616639663033386635346634376134323836363963373838643261326637323731
63616561346536633532393435393930323431303337613138323434626338366461346433316466
36343231633964306266363938623862353261356432323264333064616336386434613861303961
64636563643239383064636464373437373336663231636465353564656235336665363263636638
38626266356131383235643031336232393136323661376430336564643135353838316338643134
34386531326466373638313832363133333333656637623634353233666363376239393362376433
64653533666637636562643536623735346362666561326437656366646561643231623831326539
37656239633365646464643231663533346561646134346562333864366334373861353164616262
32656433363862613063383438613366333832663832396535303138386339393265643436643134
37316539336131623065363863646231336563616262646162616162366432373331313136383762
34656663656337633962303138313837326565353135313861343636383035653362343638313966
33343163333834643635313932663339323562666534383339646231656639343737323364376266
37326531376439386263396139653663623935626139376333646234653132353763303232326637
32663237383864333331336339643935353639353135346434383235633634613133383239643063
31613066336432366166646337353935346465636638643930386438396232376237393830393437
66376265663936303863633563323835656639343465363435636439393039613633646163376230
38353966376639353861646462393436313739653566363137363534313538633630373964643764
33316535393931383935306563656538356563633133313438626561646662336263316462646233
30303230343463623837313539323165373931323038376561633737323536366239663866373536
30393539313364313665663466643630363435363662303165336238656262323165396132356133
63326230386465396262303963613366396535656564383335306263663735663334633735396161
32666434363863643962363130613733666637353663323932393166323362333836313265626435
37646636666266353530323164363438346331666539396565333032323331616439363530346137
31666538303266643637653463636137313432353661323930386435306162643138323231336562
63343962333439656161653262303637666632346234313532353535663961373662666363633965
37366464663261376539646136373632363832396630653434656631313934343037393736376336
36636537343937386130353566643933363439626332313736396239643766316437613365636638
33636138613039396435383862316534623237323337666538636534323731613035616461303165
62666635336662376534326264636637323362316339363065356165323338343034363462626231
32396634343861303635626534626530363732383738653039343762323939653032663331666162
65636236356637626666326231376630333131346666653635386437336533346462336263346361
35656331646364653031343135336637363736303433636334306337323065393239656463636234
38623962346464666561626332636637633663656534663839643332663637353762343365613133
39386335306236343635333333353063333934333233613762313934306630323633306463303162
66373836616262336439636165316431636133313565613263656438643064306562626666666238
62363037616365613462393433623034383866363737396539303631663537346533343636663766
62636363366137653934623435316662313663623362616136623631643633396139363433616633
32623066613566626666316563316465663133373863343063353839653432626334303637613633
62303833383364663138346538313434306261623632373061373839343939643037366430646531
65643833373830313436653766643963383063663134373336376634393465383434363437343266
31633561653831393033646436373038333431626636636162373666646437326331613035363063
66366365646264363261366534666463363036393333633736376666356262656231616633303563
38306231346464663035653833333531666164623132363364613362333934383931393939643338
31386463326361383633313736643162326435653432656134366535616532316365616434613231
32396535333434363830356661633037633030323563333130323637306230323531396535363732
37346538363362356461366164653364633136323262313466343963383336333634343362333037
38393331653232326534613031343839396433333938363764373130613837646135336261323363
37633865663735653136333861306438376435373964376632343139636363396161343537316436
64633738366434366231336262636263613735353161303331643736616133313863336133333330
61363665333333643265316365646335343637316333356662616430303236336366623836333335
30353239663238343930643136376161393636333536373566633931346163303530623861383365
34383339303438336264363835366262336634643161623766306334316435313233633663373062
64393262663535323361353634336465346663303539343539323033616465373638363832363636
39633037343036366430383263616337343836316435623430626631653539313136346339303231
36316462323936333534393666616166656134663863346138653935336333636135393536393433
37613862366335663266383238623663373562343761613738666233343831333031373937353764
38333634646637343934336532323730316366616565656564313363613962613337333662643134
34306631646464383139396663636636366138666333333861313166646130396164633433323539
30373565376137343636333961666263306137386239343239306633393431316139386338623734
35626236626134373936373637626433363530373366373764313136643861363761646235616362
65303836393134303666376264336362306262343065616435366430646539366261303261383331
32313538633537653563343136376639323561383230336230656236376134663130383963303231
62313332333162346339633838616536666634376363653961363263633330306630613434376662
36633836373033363730653033353465373236643832663239623735623363323561346131316437
61366637306531306566363234643435633831343539363330643362396366393130616339383139
33613866643861653736393463303431333434353062313232636339333339663131336166393861
63623436346230636461396265623736613636656636643063623236643634323866333766303530
62376261633565646237636261656664393964333133313632383162333032633861323364613832
37373035386631373938366639656465373139646364326165333133303237323365393338353537
39613963303230623264656530623737376137616361303037333734326263383664346466646236
35633864626235366230633932343632366563616335653365346131323034363933666436376636
37363961666131643063666464623964323035663937323863303737633536376165643933363562
34373535366438306261666563383561663331376338326464386264663236316565373530633830
61393765346266653335363964323334373039663734383432616336376235306561663536383366
39343761356264663636353034663561363834363464613566336533643335393964346435326463
39343137373364376266633736363035383034326162653139653636623961303963653134646436
32333736393263653031316466613036373462633834386262343864353035386666613433303962
61313862623764303330626132373636643362633534343430663834626333633262613134376332
33616433326338396133303061663966353465373539343964616536643565306134373163356633
63353066333865383536323363653462366231366661323037303161333836643830633433306363
62396337663835333235633235326435316662336263366663633232383566373531376333336231
33633866353661613737613139386365306132323866643336373234376164316632353266623365
65666235303338363038663837313962633634623338633631636664303430613162303562643439
36653462373437643536663436663334643365386461656361366134393939336633383036616534
64303137653861326633306337393036656635633230386337373065333339666338326566613338
39666536326665383638323062313433363730366437353864643037616462346665366339323834
32643239346134643237613239646430626562383434343933616365366538323837646435343632
34613730316535323834356532356261646536396530653661343365333534393538626161663164
66393265393731393862353939353931623435393136613137343565643766643262633930613830
62336331666562613663333330326530653338643565666430633935383864636437633266376635
30353063343037613634646130313163306532363165653633323830663666343435623138666635
37666430613466643736323465363338393437386237353236353163636338343832303934373131
65363731373239376662303635303264373564623333393631666664373031316139623835366363
34653733663235623564343062316662366662323338363763633533353436656333643765636531
32376132613530616164346236326137386363666664343135653234353237643238626139303638
33323730323238666535646566396261623536336137373036323530303439303564366539336332
66386664616437306330626163626539396337663062306530646366653336303730303038316563
38663432666139373634613430366339303764643133333936613464616238323732376432636636
31323537303739663934626134326131323061666637373330363536313139343939663363343433
66383133386531613264323164613865623538326634643730336165643863333730333339323433
65313262663331623438613362383762303537626634306332383838306139343237663836396562
31666364386232646634326665633162326430616564626235663538623035343834383538663638
65313162396665373038623263623138343263383036313062643763373364613461343665366333
64653431376231356261303034613464376266393639616130373034373335376565363032376338
31643639383365363436383261653164306466643766303066623639323535363136643935333765
37333036363363643430616635383263613235653932393766633964663637323933366330303061
63613033616637616465636638663839646662633331613430313032376634386531343561373135
30656564626130366465373136373765333836383662363837663566386336363062366635333936
63316230386665303934666533376265373864313933366364333165346630646136353261666364
32366364656238373439643338366630373538633335323731633535376431656431333062393831
61363230653364666233636238356139303536643239633632383461616137663632376431643234
63653435373136613663326564363133393735383439636461666165636133343162343333653962
34303963613238336539626263316439376461333261653036393135356134623833346535333637
30373136613431616336613937626533643433363662356430343562396638613038396338643732
30333638373463636663316431393464353038636130366233373861383233646637613433323338
61373933623861373261653739643831393263306562363936666465336664333237636162613661
63663131666336643861356635643234313738343064303434613732646664383336336539633763
38666437386130333235396464393032343836313736636237373462383030613531303338303661
36383435313962626665396266353039323836363535366631633238326439313634326464616638
35376565353433376230343537363833313530393064346463636261656338383261643632623166
39663836336233613733663964333438336534396636633734333830393066323534376264313463
30656138393631386161326461396136396434666662663365373331656533373264623434303966
64373835663065623166313135383036343039613761393732316662383737326130366663633763
34653461326639343561656636636135353133366564666436376538623163336665366333313364
37393966636133396237346161303137623963653364386165303833663139643761373930323534
37346136333566396161636362373366613362376663643634383161626566306535623262656664
38353933643839613333623735313937303661663638353832353439373833346536306534313363
37646135646164323230376237353635653061316638663334666134323766356436663230396265
30303466613261623638616630316239626435393632343939346563656434303839666534333339
31383032623361323337376335346137393634656666343365356130636235656138383933396135
62393562333763356530323537633433313866313332373637643237363132663239396431383439
36336464363064383231616434636366646433616561356637383538396633616461656137383438
36656264323635336138663763653161346561346462653630643633363036353264366361633264
31386538303733316338626461663964323633373834653337663338313666383139356563613239
36376530373261653530656634343763306231356635623133343763643238663133353334353865
36333836313264653861383066376161303963366338386338353934363165333161376230316461
30613934313039623230363833373063363764333064663166643334303864613266626438356331
62663061643338316462383164643061393966343566643561373262643464613131353637613035
37306337376233633062646262623237363537343666383039663238313537636537353537333166
64323063623365656665343537356132316533313632663265353535663561323135343135383633
36306330643231303932643932626265373966346261336531666135643437323961366630343438
65623730613532613665636165366465636462376665383132643238303863623061656366346330
33383132323163323733643561316337626531353035613139653439373665326562366132363665
63336336363535613062636330366432343665323163343462643362363630386533623861323334
37326138636331663139313436363130656136623630653266623163653031383532383865366465
31313538643430353035323166346535653765666635646238396333356330616362396337376635
33636237326266663431373264393066353838356437613534386232313032666166613838336563
32623531623639326539393433363830626566653138326135383539653762316632323037343231
66376234316331623262613866623739326334366162383463363130383032303132646433646434
36363736646236663463656130353762386431623332663030333539643639366239616133386330
37313065663439313538326665616332323364663735303964396330643034366535666534663665
66653030323034303736626532393739633237383865323966623361383433346366366566396466
33306464373163303139356664363331316637323736333331663066383635663639326339383662
36653435313733643736643034303334313563636430363165303038646466613537336330666264
62656461633562616230653964666632343562353632666331386264336364613737373964303864
61623363316663656564313939643936386661656233323264366538623734313136316666343666
66646139313966303330346164396461323435626635663539303735343331333837316661346538
61663465646531386636366439643239306461366437316230326139356661383539356632363565
31616162626636373939356639336132336364306535343366363962666639376535656237613437
39363734623934653862373261336361346431363566623632343237636436626435383337383230
32333066633039326634353331623230623364376239623335306639353133363165656637663439
64333434303136633334613762383064653231336665633462336137376465353235313937383363
30653534346134323361326135626637353537663737646437373934623162316136643065376434
37636534373032383565313031653266383830326262306565633232663137303132653866623735
30383266396439636231626638353835353738343333323539343032376464363730613939343365
36613032366635313535613537373437623731626463643966643862636535376631313664646432
63656361326532346337633431356631656137666130323731646161393434613036613961396237
62373030616439636636363334343139373833643339316331383566343166356537383161366630
30363564373636373134346239616332373166343062353535373833356337653565633838336331
61616261316239306162633133613734303335333864306263343362623262333134343566656561
35356431623864663031636465333133626637373466333962336439633337373336343937653366
62333332353538346239613230626430336230366137633561653738346430326262383933396134
32663039303965376130343433643563303561666438366530373233656431336666333763363532
65663461633833366633393730336132656432383230366366313131653139646634326332613237
66303835623238363934633532383963383963633138626131626437303731366130333263323936
61623431346364323266363039613531656236663361323862663834333736313431633339393532
30663837366439333163656539653339643633303638646237316435663931636664363361303339
34666164386362633532346639613662306162616464386534633964376463656235316263373264
65343963633062326636613832636537363832623738353931363238393866316361613564306163
39313436323632313461333838363631633739383439623435623732303736363630323439613235
32316637363739393337373663353066616664633466383732383964346633366133326361666133
65613631623264313035306136323035636339626632396238613833356430646362396236373765
36366662626561363131613065663432383636393137653832336432346535363235303235343438
30356661623462366163616262643964656637643766646633666266613762376162363435366265
63356333333235353864623164363239643033653365396332643434306366613534323439316166
35366531333334653631376462383935343339383034306361353965653138616665363339646664
63663764363633313735626235643337363534393030323563316666396235663066643830383539
39616336646662653862356634343537633435383162666433613564643263383439336132333737
35356131616633653532666639313166313133656263656139306631326635323130376165363932
32613732643439396337313561326166363235623236613463636135636166656135363535316632
34656665626464353839646132313066383461626231343065323135633339396166343035353338
61363035616339663262663730363462373666346634663732633365333163323539323361646666
32623161643035343433663862366462663764333138343131316330346361376532356365656231
65306335666632396230323834616138346462656237383566323362333336653838623161646335
62653331366531356239363863383335336538353533373732633434383536396164626131633662
31646535666639346639353630346566333330336162303262333663346430353836383435366432
65373738643138636163323937346439653765326237646634383362626236333036353137346637
64666531643230643765373631623262656337306339656164333166323638393933326261633738
35646533326563353666343432626538356131316139343766343130323838383131346639613435
35633861303331316434393865656237343363613334333439373136316137653539303532393533
62623434626362326566373332656337333132633831643763303938373033613732326531386337
62313137366330653665626330656432326539633937666264663230613166333561386464623737
63623339616536626166356335373966363137366638636165303231313331653131313439653735
31306139383261613039653262353837323038383432356234393234373736346635613862666430
65333165626137613137623237386663666138636438393961636337363364646632303463663861
63376533663538653963313266373665353133376433353061316563653562396437646266326365
38386334336264333737306466636533333935393139326439343733303431643336373734653830
63386636643732633863623437643735666566373435663034323732643362663538663737653135
31356566383933656139333138346663623839373931663662666164363333386233653432643737
66663766653638386566383366666561656366396331306536393130633861656138343661613063
39646137323934363636653732333638333361346161623963346132346339323264356564633534
36343864386533353963393566383963346261356261373933393632386131366563366136313061
66373139666363366338623537303535656535613031376165396464356238633734633261656563
30353665356365643138623462306439333636626531313739653137353339633863356266343532
34373833346132336337633763323630313265303734356334306630356332663335323931383638
30643732633239653435633639373436653531393363363437333662313235646130636662303063
63383435633533313235333530616330656239613730333961336232316366653631323836616633
66313836653262333766646530356661373562323438333537373030333835383361386565613936
30326163633064373861613765353432346436636535386362383530333763613839386666366139
62353037343632363734623266346230393861626434376664313238623736346565363836663262
66366563643231383765313836363934623933373436313037363333373432643535356366653634
66396364346165643764323230623439323931653961343033663033663865343663656333353736
36346131373135393234373833613535386465653933376266616639633737366363343637383236
30323164336635313339396266356431623764333463353361363431636663323464303333393938
37313963373765303234633439346539656431646138383339613534656430666336316231353737
61393633326263373239613966316636363963303665343165313063373731623133623765353439
61663130656136323264633536353232613464653836326537653033623233366563623535626633
39653465356538336363663733363563643036333262323631323930623837666366653037653433
34343565346437346362313632326230373430383636613361613934623339376530613063393132
31646539393536356131373864633234623634333734383037316537653731363034623734383966
31313162393965333265376537373134633434313638386439383731373066353038626136333138
62663862333332666165353432303261386633333639313434336165303563326337346539666235
33343734653431326364326231663463343536373265663832346465343634326466313130393535
62323338363331343239336266396263343865353962363738653333376234386339373634613362
34373630633064373036656633353837643961333136303366383737326238616163343966323261
61353737346434366331383436306462663639306634316562653337336263633632333563393333
39343661356438636262393565303739373462393965333663303665313662613936653839616337
36616133363061393131636634376232646462326661313937663964613039663731643465313562
31633236653366323437666164663634323938366465396233343761326538633165643764353636
30616564623630306565646665336138666537643862613630383266366330323135313539326366
61343934393335633438396663636262633934613838666134616137643762396365366161386466
30333736343437353864373165386362663935363435373166326439616135393631383035633730
30663535343534633437343731653939396239386435666435343266336662653430306536666164
66363465373431306432653534313838383463366463636537366230383962303134373361323238
38663865336437386137363435653861653034373666633663333839333430636330636436326631
62333830333733353137306232616238363235326533636539323030326431333531633462336263
65373836653335643036353932323136313839616134303831343130376463653232396263303965
30643139353831303535613831346138373133323132316333316362616166306564356134343834
33333330373165623035396138366136646639323633393366316230323836323236303434333331
31633533373537363834636437613731346439396539653530376365353261613839333864396365
35636566373532346135306462336166626637383662393630663239656532336436373465316336
63653338346162653663343162386134643364653335323934366230656464616137656363316634
37323638613836323964386633643132613466316536636238303835373463316437353134666461
38363434326666366131633536613137316639646662353232663464633438363663636431326139
39666630383761626435373937623831653363636162343934333537303833333739366631393531
39373038616262323033306434313731313436346237393962376331666337653966306366383765
64653635633230623030336635393230356139306363363463313864363238363739333035376131
31346363373564613336333763393731653933373435623335326630656139393263363062353266
66636137323732376166666138343466643464643931363562656137353461336331386461336539
35306138396438373535313530666130356536653637393638663034643834323965633236643634
34623833396238333964663234313932613231313162656435383061313061393961366537373962
61636161666163383463303533373061616436623532373564303061363034386638393533366262
66643132613831326131643866616365656139643739306363666166626565623332663137303533
62373165653436333437613830346431356365343562666236663332383230616365383138626536
31643264316631366232383837303530313836396430323434643561306663336532356262363662
65393739376163373037626232663634323961363438333266313366333466313134386432323134
35343966636236333431663765303365653239353832346633313866663630643432303463363732
61656365303837346335346564633736343437356130633430643465343131313862646534393539
30313862663964653832656563646630363734666233626461313435636262316334313835356230
31316562663161643462653238356438303432643565623535376564303061356432383961313935
37353037323965313166623563313730386432373536356264636539613538616133386466336163
38386162303033373166313039383962633431363232356365656139623266333563316263346131
61626366333361633833313437613633336132393139303130653839346365356533666465616231
31396333376461633261643234623233623365356466653963336335316331343130356231353764
65363735663566613666373835633864373535313236383433383636353338356132613431303464
64666363366436663732306436653964636537663432663235613532666434386139633638303230
66663265366439613163333038363038353739656230313566643663643535363161663734393538
32376261643462326537396332623133616638303566653764326532343736656166653334636461
35303462333236646634353337613638316537663963363163393232363137343631613333636162
39323066623938353831383962396365353265613936656239346135393636303462653566373639
62666232613039376632653466363566353838333766346662346430633737646565623937626439
30363530633663303533323032373339396236633964306161653563306566373664656665636537
64663662653763613331346364613365333534353534666432633437303961613437323364326566
33336531353364653038313736333237663036323263633861386665663030313437376239623536
38356266323732643365613730666430626161656633326632393464363363356564653139393139
31316636343662386636643833353066303063336232366637353338353262363464353265393434
65363037383933383061653863663363636562626566333739386134343930383533336639646163
35353530356664653432313731336133383830376536383532656432633865353061316363353762
64356537313861643234333762613339633761393732336234366230623238626537343965393431
61663864316236613465646565343861383430363765323234656164313832656634313762373966
38316232333637353431333832653566663937323730633539353761356661386231383033326532
63633339393832343239616263333639653134636531613734313737323935616264363663393531
39333238356562393062613966326335353736366630666637326238646365303263343831323136
63393634653933613565363561396539383237393430663864323739646462313164383832393133
62383736663965376364373036396363633462376361343861326538366634373135363737376431
31383234363338336439303261353537623330613338656365363733656231333638343532313331
66623235666563353863383166333635386236376664363133373232653939663538346562346538
30393961663138386230383866616638313637393737646661623231343233663333323237306638
37653665376665636330633564343038353034633737316563653935623165373865353362383739
33313361353230623263633966303662646635346534383930623133333865376139333333313133
62326265336236636661626435393531313232633062626461373666653332366531303263396463
62303532656361343662323561383733363331663134343430633738306630663739386530393963
64623766383562616264666630383764343930366539363830383236323163396665663038383262
32316530313662386530383165653866653131353637613564336237613535616331363937653961
61396638373938366334326633316634313737636232626231393931386565306561343432666163
33383761383636343133316165396565643330353231643637373732303265396533356138663234
30663661373139656537343936333338613637383134616539346665663461393063396563646666
36303632363035376637376134306361333730646566393634656433393664646366323662333262
33343133353938333363663363643530383537643434343565393633313366383335333966316233
37636665356533393966346532313164363262653638396465383266623131343030326365333230
36646339613435626565343839303339623734636438626362646364363231386333343533353837
32623730633162643666363233643636303561613135303365393439616634353964323862643237
63613638343839633032626439633166303336306462306664386165303332643963323834306632
30393164323235393939336163636138386238653363313061623732306366643065626438643331
30316333656434633036346565336464346365616539323833323135323534626239343938616538
35383566623934613630633532623230666466393333393663376434653332333730366661373538
35383635306535366437343936653834613436366439326637383262663964366365626430616336
64613162313538623039376434303065613031396162663230396437643439343861643661333766
30666461326264333561626135376366653166343039366331386165616562633966333933653563
38303138303663346366623939613335326637646461656535336566643564616233663533396166
39666231366561623331346262653832626635326666363763653134613937393237353435646366
39626462633266386232333339643630356665316433393438373234613830663063333831353832
37636363373837376564386530383035613835663734313731313636386363363966656532626536
64393531356435316230313465323565343332366433373062343335373136336266346533643937
32333737653637393331613962613264613561616439353537653061623932323433626163303437
33613134633061383237386231336539643632396266366538623362326466633630383961643734
32633363616161383632303939323164613339313263313165313938663565623261356437613165
64613433303735373435653337333037333138616363666533663462333132356466326630333464
62616361326333633466383566616337633761653264636461653963373730353034346566333831
66663162363135656634653661373963356132313635633339623561373732336535356466386166
38393237613133333231643265653130313961356165323436363964643838383661383662653465
63623238343339616433623138656236653461636537333732646336626333653137386332646166
64343833616161373532313464323665333132303362613761313033333562363738346430393937
62623365303161653664323235643739336336626262313030636638346464626137353334313364
64313139373534393438336161663961326565383938656337363735626262393664366365636565
38653065626136383037356333343564383631346435613465373632333838393966313739616130
62383334613034303863626531353263356561313662393237626436383265343232323136313865
31616436313337346564306633613939613834643530343333313161643437383064366637633234
37343734316435643063623730643334663861313333363164366432346231346335303238613664
62316237373762633466613939373735303739633566623634666437396331383462643933663665
38663462663538613761663766396530633937656231613232663333636262636535303033633237
38613433643139613333333431376434653638623661326138326466613830626334653037656538
64373634326631363032316135343061363163643239636334353532613832323737313235653863
39643238393935666334343032353831316364323261363235336533663261316233363232373262
35646435303862313936346332613438653838656438353730303339333066326339353537366566
33316262626263613036343563316664656634393266343631303132376162313437353833623035
62313962316461633632653438323665633336393536316162353038366265616439303837633666
30613866396265333361353832663538383232373366636538663266383638323330356432363133
34623130663436343633346235346331616239383837313962643037653962613266313931303663
30626230383831393232313437626364626530633238323231653439393139303932313666326536
62356462613939366464626432376432303862306239633936646466646466653230343932343730
32303533306635666338663666626262393836383266363164306434383165333536313335356466
33316136646534643932333133626436383735313137323063343035383139613836663861386666
39343236343338646238346531343362316166643733333735343862323839356138653765653234
33346336336235323566316363633134626162643637366235373837393932643965326461623933
32376630326232393534313537336163663034366338633932363662623031653039633139396339
35353433343736333339316465653537353962643430346362326236633932383832346461363834
62363165326662366632653835303438363832333337663835343738313865386234326365346236
36636133623630376235396137326334623132393738646364626665353331396237633663653562
30333537303333303336616464623564383836336338616135663834376136353339353562336365
63363133623662346634376138376134626437383834313764343431633430653237386563336539
37643535363235313566306431363263313332353239663962366539393137356537313038623533
62353362383265613339386464656563626634373832333131343466336463333839616561643933
39393433326465306530376366613066363137626436396561656162613565623561336231646533
38646431306662656335333730396236353431373631346236376431656532633430613139616630
63353665626265336363393633333661633335343839613430353562663266333532316337386238
61633363323430636433616232636531336165333834313137366533356532663132633564316338
30663831666361333633633335666464643335616433393931663465313234333337636138303263
63376535336439616663663362356463653933613561656632356464306135633162306163373534
62393966376636386139326633333062383531643263383530333864396261373633386666343536
61316538623538613365663336636334373934333463323332303738363430666536616138623530
61376263623638653535363861663530306361616130613866663030303063373931353435323763
61626336303165636534613464376638393162313134393831383162303861663534393034303031
38363065643635663931653464356231343432643735373739663537396232656562643437626431
62636564666439616164643936363431626630356666643065626666333335326238663666666261
66313065323964393536313730653431396263646239356561656566343337663965373038633761
65646631663631333665363261396131623733353265373733636334366261303936643032353264
64376263336165653065666433373462306236666462343139393831656639313537336164366635
36643062373963613864393062393136643566373536396266316431313735383234333830363764
30366130653636383062666637643537663265333938316237633239343062356230373231663331
63393231666263343236306439373761353062303564373562353434653039633436373235383137
36353931336531376266376164363335613935333137383563616331303836623633326436656566
32613865313665346632636365333533333038316166653833353331306537346332616563383131
64613638656165643136643138653235313437336433333065663837313265613231626631653236
36353435313335343163366234373031373531373561386463663763333532613132373730353832
39373635353237383639636438326162653864353434356361663833326136646462623136373034
62666135373436663730623834643138633633346239663261343866623439386336633932636661
31356462313933653036393264306164623732636638313833383036633532626633353534326566
66323661376539393039353336373038326231396666343865653139393539353430373238626638
34306465653330613039316533633630323232336366333832383261623632306639343230613362
62343533356232363238663333383565373366393065303764633565373339343635303432613930
66626136636532333338623539643266373839333862333661373437353262303831316437633736
66663632343565346336653866383633386538653930346534353161666635353736653035306563
36313664303263323662303633363437306333343136313931343633306339313737306332643138
65623564303436666132633761626437666234613831616133636637646336666634363466353438
66393230356534336239643762336233303232646165663837336437326336663935323239333535
37613832393334323664313461376466376334616265363438373161613730346165386531646137
64363965373735326632653162366130396533633765643836363231653062396364353933633730
32623161373364623933336536356233326136633633393135363732393565646365346630613330
37663263373364623962616635373964663538363232353366643866363362303037393161326362
39656462613938303064306232353432393063636431663931363032353162643861343061323631
35373739346162333838396236313365646634626361303531383962616537663964613862393832
37643035663565613639636138623738313639393830303937656339333735313831633761393939
63646434663464623330376563616161356439633663383236656431313838616239323630386566
61666139633963366631366234333939663865616538313230666537326161663761356639303564
36313262363336643764656639316166613366383061623436653134386661643037616435663839
61366431376139353166653435366238313630636132323964303134383430376565333930323839
65393039393336666434343336343461616531316133336164666165643339326631376664643334
39303533663936306564336336656161373862393763636532303631356438666465346434343863
37333364393161666639316536613935663162636230326432363739626434353535316630626435
31346137303562396434313337363063343135633030326366346361613039366564613333376537
35383335663536303836656437313064386661653530616563663430636331366131363266333231
32316163303665646163393937393865363932316130386263326134393639653764653630313631
65636438373735633165383864363135373430663038363234656364333234306236303530353730
30666232653265316334393537343338666462373963346532643861383537396361643638373664
62373863653134343036313035346532646330343632396362663433343930373330323834386639
37383832353865626536633562376432663761656264383831386532333364666663306537663632
30653832333032623731383938323438323535656639386235636561353630663961373738636335
36356336336338333534393561663930616635373863306663393337643136306135346530396365
65663939373861633761653232366665373031363839326261333865303836653565343435363236
32626563666464366531626330643662663337333939363839663736663964303961653635656337
33383839376562613863333136343331333238623065643838386234373733366633386233356235
39373833323364383330313238666436376638323936363738653163393237386334356338636537
62653166396136373232613836393237313664633335333436393861343336393236373930373939
37386332386332333162343532636539343634366136366539323632646661313239613664373432
36653831386161303733323034336238623134333261303739613439306538333262643333633232
34626331343433343133353562303761373838653833633536336531643235373239613938393037
38336533313736393764613137303635343331663134376237646261303139323631316665393535
39376332333365396538613637333035623938613930653164353032363639393466616137323631
66663134376362656633613864633065656231316265653234333839623434313533343466393539
33623033336362663865303063303939346265643431393835663032323161393661323830336131
37653162636238623932386130343761626537326132653439356531643063643162393063616439
62383765326134366432666262666634306537653537316539316638636639653839613966326630
62303037633130653330666161396466663166376632373539376465666637333663373436393731
36623064393931303765663334323365356161393336656264663135313535613966636461633131
61343735393632373838363765333161613662343739323139303766386631353832396230366364
63346365316139626363393565666465616638363132326363383661383235373331663232613361
32353461363166356163623662623231333233353763313939313863323362376339643264396638
61613865316139326163643431336536363435646162613936313038313766396565343262326131
30353165303530383962633065646566643031343066663335613332373635386336336539376563
32623066386266306132333233386263666236323736623534626466663839343863333065353734
37386539616563376661653566326439653862623439366331336233663933316361666436393134
64333865613736613266653239633530363331376165326531346663656338623234326264626139
37643335353464333239613731626536303139316663313764326561663734396435373562663135
61373236393330323339363661643739326238303964643463303735643239353561356632373736
31313564313865373534326166613861353766383839326361306262396337646532356233393635
66306361653964383539303762303230313833646166353630666533636131336337343563643738
61353435353637636265393863666636666539343133616532323762333439323666343331656631
64343030666366313662386337623334343031333036623333383464303063313630666366643161
30306562643331653632383830333962663763303736343638663531316132383838376535383164
39316230323065636430626465343932346464353436383739336635623834383863346334353131
33633538333939313463376139343838353265386535613735623933633639633561353832353864
62356636666439356166663933626437613533333666366461326631646665383662313031383163
37353637303533663436306166646339373161363738333661303237303838393633663061353866
63653161376465333933343665613431323833393461313934646430346231393530653538656663
61653835666432316235346463323636353132663562363363656165383732643865333132386464
31303862666166663331333166306237663836333261326438396661303464646139383330646465
31316161373335666562386438343461343332333161366232613565373930313834343035643866
38393063636161336339366534386135633165373137343966643532353535353561323337346636
38353336316635393563336534366332323837643032646432346135386239653037613531306534
62316362613434626537353832316262333539386539316130366531396536316539363333396630
32663238353066616531336564386164393832656264373432393364393330376139616363303261
37323831376337373863623165643833363336346630653163323633626664313463303932653134
30636664613733303530636533363266333531613463383938396237653863316432383862343938
33373732333966643832373366323863303161366339653864626530633337353934393666326432
63356136663738666431316366303938313835383435333163626631366231383064613065623236
61633333353935663439633866623837303631636139336236346138356561383561373162633761
33616461316263376438326639623639313437613865383737656133306463306163393766356432
65336433333230306436316531383665313666616635663663616131373139653263646665353635
32323861623537333065393665386536393262646162373030636433656530306361623539616662
65643531646538303337613165623766366339346639323730613230623234663961396332623331
38623438653232363335363034333034373337626562636635336263663163656131363931353362
65663934373866343338346265356666393130313762396339656632353265343831373462393664
37643031373635386138646666636133643730623231333766373335323665386464303864656635
36376239373137623434663664303337623834616330393164653563613466666166313334323161
62636238306336656132343065356164326131323033376538393830303063656631323966303137
33313065356538333162363631373466386464353134353634666430656334346262323964383163
65383065623366653338316235663636333038656263356161613064346362363931363266353430
65303166303038386266616261663036386532666131626239323130633632613731376239303763
36393436386431346135653436336238366331373861633163363463333166383830396464396664
31393237656163353833623766656635623362666633663264386261613464346234656438616634
39643665663461613364636465636664333034303837393039323638323633333263666535353563
34353231316438383233336139653666326537616131653266613236626233333034643633636138
65623938663831646563393163636163623363313636613330333434656263363831396638393832
35383861323233636334623564393430396237343866653735376432383365316132336466636234
63336136636637646535313538343665303964616139326533336333356136366535666662653539
30613937373830353664346534383832313230646639336336643233343639646562633732663463
64383239373232353839313731363638353566346162616636663032356330643436373231633366
32656534636531313431383061353732356232663933613362346139386133616261376336373161
37613766313031353163616236323730353934373263613364393064353864306530356130646361
64633635386166653233656536613332613636366432353836613830363334376633363334346266
66306436353937333465313836303764303361646666353264316232383231313832306236616635
62376634373564336231313733633065373438356634303233643732613836316234633136323333
36336532656135313533353663623835323535653665613231643230343135616464373334633161
63316363656634323335353437656630646661373231623633396536383731363562633265313538
66353534396634386162333335306135343235646366363239626464323163316531303839663366
31313334366434323636376232373233663436303561666637303136343139633931353231613339
66663933643365333963363737613234333338393931383937616161356232663131363035626337
30313066663537653532316335663533623632656631326531663733613161653738376436616437
66303437653035626261656663633664626537373066313166633331383737363231656339636432
33343934643239613962643163626639343962396462303764386630303232636336663336306139
64653633653831623063383434616432376234353564666232326164623833396638313538396161
65616232383738303065616462356562656132336563623564363438303734323033613565633735
30303636633230306165373831656434613665613632363935663133613365366361663234396336
32313162346234663432376464363466353235316332633636326332393137643964353263313732
62633564633130333234633234303861613638386239626535303866363761633433306336623236
34656330666434356664623635323835666231633463646130356531633063393536373139633535
32356535323035323534323362336461663833393733366462383966323734303835653666663833
33386464343738613537303130656463653734323466653438313731616138363332363333306531
39656135363834386538356638626337343761323238303739633836643464663764303232373365
30306366356165396430326237653862623961393464663833613537343634343737376130626464
37656563316662396466613130396663643565323835623231636566396331653565616639643834
65376661343866396631353834643363376432646661626639396336343237363839643730353763
38613763393037613532646361623262303630363061316562346336666434636337336665363135
30656336626234326265336636336664643765613138653461303734366334666638623064663637
61303436383835373834373266623062663865383462623364363738663133653265386637346166
63383230346639333063623239343530656238393265326666346335383034393532303635666134
31336234333039343366623935306238623939613265343938363663353231353663386563303261
35303731656137316235613335643663333832663333666635313365313038346263643836353533
63326363343063333737316334373662333332343930663266643462613864343530313231636363
34313234353639316638646537663837613166373137663062393237393564356562326430356261
66363166633837313335343134346661313339326264656435303532623130326234346436383639
65323664633038663930323862663965376230656666326163313939626130353132383562353630
66316331626435333437646634306131643439343465626237373639643364623265313731356238
33626434396339353431653031393265386439643033396331373965393864383033663031356261
64386335653637383035623262653161643335613032613564633338343664383937623437316238
61363163326163333836383336666635356334303032303634643265363138656265666132643332
32653738663336353463626665353661663263636364326534323538366263343434613332653339
64656666313461623161636339333435653662353437613235613434336139643861393964653563
35323566313130363132386434363462303961626333383261363737616132613430626164383636
66316665613463343634346438653763396536653939643438663135653435316334653064393134
37393364656661646365383538663037613431636337306564353661656636646635323262333339
32613366656232363165396561396461626336373034643764353337333461373034616237343539
37613131313032393638616437646261326333363230396532333566306635613165373564396331
33636130613930353731333132656435363733393532633539646661343866373662376539643537
61633334656132393036656165366134323936383136623932626465353230376533666461323964
65333634356233666361616331313236636637636431643765373966303765616337643732376339
38633962393863316461663038356339303438373166313866656666336663303830313736666162
34303937616466636663396432626564343362323261343330646130326339666137653730646433
66383666656435343264613162336433386364633437326538623532333063363036623264373530
31323733303133323333633265613063653466343535313535353438343465386336313530303663
37353662636364663431373966653333366363393831316631323263363235653361303562363630
66373663343339393435396461653735343336303065633736323038613533663130316662353465
33653237323039656539313032316139373562323031623934326666343237386532313462613334
30363831363234326435666361626135653334633030343765323665396631313439386237353337
66666563643765356332626631386635666565393830333837383563333264643134316236303330
34393131313364623632653264323436656362323931373965353335356337316331316236666263
61626137396436396235333061626332353361376233356437336238373130623137633039346434
61373666636530356637366262666337366564393639666434623335393263653364646663313833
31386464323362356437613636383563656438336336613236396565653062643533666338613632
34376366663262343132373035626633646633366330626139653431313237336235343364353032
64366331646534313836343531356161373436633336333262383062373730656266316533666338
39313936613831393863373039646633393230363034343433326136313563326463353861363865
30323334623037346536366132616432373631646532313038323762363761313537643338316164
36626237316466333763346238613932623466616538333336643636396439363635343065376237
64616431383134613861343264653862313934356537366335333938346132313033323531646263
36643362333639376236386132636437303861656365363364396535353631366366366537636630
65356139316466366465366465356330353363336338346230373661383662626433636132306264
35643432326234366262343130303663613336396531323235303033613738336266633036633839
62646539636432343836663466646233356666326333336364643434616139326338323631323931
62616335376434633962653462303839626433323838326235626666303137303763663635653833
62316335363261356135366437633430393335326162623638306639646632656435363563336463
33643064316331373032373730336134646663366564666139353131356631353464623631373131
39616561666139656165363031313763313638366561663166376338343636653866393965313436
38316463623462626165643461626138373161366336386531366564636136613337373661613430
35633637616332653664323566313266303263643862366136363139623833623266316436373361
62313937643037343336306233353737306265666634366463383930623434333661356631646633
34346264643035316532366236303933613062613433396534633264353562353335633834386139
36656130393362326536313561353664663439333864346539363061366364323035373132363765
30363131303732333665633831313764356331343931313261306564666630626535643262373232
33613961313965396366306265633335376464613865326439393936653962333034366236613439
63373430383834613966663164313266633730383134326531646336343761383137653631646533
65333938353239373035343536623161616532656437376433333663656466643135646363383437
62633230363233656538313636316466613561326130393637643437616638386665386436313331
31313464326665306332313666616239346362393462623063376336376565623937613534386661
39313166623637393934633734613364343637383431356333646336383761643438343466653632
38643166386230383230643838633734373833356131656666393661376130393865636237393964
33363231373561623439643934363664383530376133633534613635636361356164306662663835
39623264386332663666353266306364343739383733343561666437663832646662306630613232
64353234303938376638366162663335323331303236393938656332633035636561346535316564
37353635346539616564643738333733663966653138326131363933323565343262353835373037
32343633343961346361626162356630383731363837643566386261633737386266623635306562
66373865663364643631353335323334656236653664333337616461643336373365636464653134
39306231313033623564633034643536666637623435323064393463363239323630653064333462
63386666653636373637643537316533666335396131646266646435656635366665316665636137
36643531303162656634383664326166656130646536363833376465626336323466353634663438
35353737363536633362323530393363363437323837366566613331396666643265663563636432
38626263323838313166653432383164333432376339333536326466393037656162316533643839
39346238643238383164633733663964376535646539663338333963356462623232393437316664
66636634353033383631653439323631653232333165393134393033313764346165323263393733
37386535666562646436323061623634623561323337373433646138313831643535666161383139
64653364383966373063623861373736336532623462643637623761613764346262396130623934
33633464343132353464353433343261396266323863326232613236393539356333356232333934
30303737366361663537353439303563386132333164333132306433636563636630653064636633
38333339343534666638316137323566666336633838376361363133383666313537666233366365
63353865313665663539326334613166613030313233613061613462306663323661313338616235
62396630653765326239306634333134353233343536363864653065393732353465383434376332
63656432623133386232323533376466623831663961353437663730613130373036323334636533
33636165613334386364373433366531393931373235346630343930623465653934613964343334
66363163666333336662373236383739616130616134653134383364626132633131303730393166
36333939636634386138653661336338386537303165343032363762383534366261363731316130
37383035313463393865613930326231363461666364623636363735663862663837616139633565
61646632313265643831326435376238363234646232353938323635326633383066626532396332
33613831346130323364313234626337663434353366613564323732313237376464333339363734
38343465306465643566383836633364336132643463663930636231663337333238626233616465
38643138396132636364316435666562623662636565323838393337653963363531346539346138
64303731376136626237626230343033316138656264383134623930313066636562363039616339
36666430386235656661383965303533363265363166353364613864653137636436663437353163
37653935366237346530383137383861623266333734636566393762666563353062356231386134
30316636313035636663383730666332383635366335336163316262353039613437623135643162
32303162316238666538313230323230636634303836623365333439303135616161666464383139
63643966636266666364643538303636396561626136393333326361383138383434356164626637
36646166643630363861343638386637663835333637626337643433646332623731373836323636
63353865666262666263633032653930306162636434376334633931313166366463323361643465
36646165323466653166313239646437323333313036393861633933383937656331656339376366
36313362383264663762633264303535653661306466363166616632373962383664376131393138
63643463373862363235366431393030656336646664303464393562636664326338313963373230
32643331613837343131313738386365323363636632326263663331653432333364396665623135
34643837623266303266366431353938636166386364336366316137366261303062336431353562
36616137383233336663353566636133623437396239633937616663636131616433666463306434
31616262646131663839333132376138623638666430356431363265386530333963623663386135
66373361643031373030353730343039326630643265336666623262373832613365393330313539
38666130333930633632313766396232303335353439353631633632653731376165353937363037
32383839633639353332343039626236336533653530333364333266363238363538613863633032
32616237386135303730336431303236343366316330366534386465346565633433336135663366
30356465616136396333636639386234353533393238336634373438313864376633346163386162
39626663343165643561653561613235386338343666323939383837623163393439376365363830
38336635343062613933343861386363363937623036363537663737613065663633346130316163
65366136333865333763363632646566626138343238613738343165383837353562313037343865
37343864326530316564653837636264326431383866656133336439373534646634343738306661
32316634306437366633663232636465336439653962396136363961376166343435626535323862
35346138626266333138653461373664666632626666656364636361393630633736383235653865
38363639396438306339303432323037646561393134646335306465653831623333356435643230
30616535356165333638636636646363383237613939363265326533356664646237633264393130
37633330303965316331393934343338326332663835633533323234663736373430346136393966
39356530653931356234646232356135396462663532653439383663656433636530313933313930
62336465626138636261303538316132343362653365663362636265343733303961636339386562
38626666613836323130653237313466303166376330623633663331376136636133643363303531
34666334666532306530363061313135383038623137323761613163333337636161343863333563
38666538363131313863616665356265656665386638663134383232386239316430373835316531
33643432613136333765316333393237313032653964303862306630306631313138663766626530
66656539653462643661363830353431323837373964336637616365633937313738353230613165
61656262313965323438396461343737393461643765363631326135323930653965646230373832
65636362366534323030653432393130613833343635306639653465363362626161656466636230
65383130623265666637326630666462343935393834386237326166386439313237623731343965
64336663366232393661313766353164663763623331346662626164333338326366636535656332
30366433333238643061646539643036623236646365313363336633386431306635303864383565
62353835306463343565316262373332306630376434633635306131386265303431306131393433
36333536303433393039646266633632643463633965663562656135383463623161313835623937
61386534346164646636313266303562383932396665643766333332366466313564333461376139
34343165313130656630363739366534336262343530663933663837306630363832323065323737
62373633396261646535633933343530343131303530383331333235353731633266363565383566
38656536323866333235333161653666643037333034303938613831656531326164646135363130
33326635633231396535363163373635303335326539353533653530653539343634623162353136
38393836613164666130343932643732383330366238663462343133386337626530636638616135
63393635383561346663383935656463326437393665366631366261633337653537643932353132
33363937663164373632366136633362363063383034646664663935643464616237326162666530
64363862626631333339346437643736656462386637356233643731366439346232633533653839
35313531323730613065653565656331626363323339613765306664363462623966626133383864
35336462353763316438313432313635363332623534313963623062643832393862393630323862
39306235393235323935616666323531316263613236623961626439333530636461646639363239
38373865393132393135386537353834663939376633646232363336613739636337623065383761
62623832356634386633643837336164653066346638373038323936383761333939653731366532
34373130333365663930323366636562663837613331316637363635643831303033383039383961
34626134303064393465373963353136376461333434633433663761366364343133353766316566
38613931303835323135303030666639363430353161653430643534393532373736613730393564
65393039623366626663306432336139666634653636306434386461613465316464636138346538
39363162636461666465353932653063633237363933626436383665343436373237636563613037
39643235393439663739666161633938663564663464366463346631663966306531643037393766
33616433313130303166346536343862346638656265633162363535343837343165656235333634
62366338613162363630356636343036666630626133306535303239313831386133316336613433
35366133613966646464663035633963336561333566663737623735653366663137356665393538
6361663965613931393366613038623761633831663233633137

View File

@ -0,0 +1,20 @@
$ANSIBLE_VAULT;1.2;AES256;secrets
30383836353130323131653139643365346335633063343362656530663538393435663335613132
3533343531333434376632333630343364313061633066330a373263393966336430616530386564
32313530333939333035393863623932666261316664666132366331626561306230306238323733
3230396463303764300a643831633734393964363534343932303039323161373239363766643037
35333362666332346133363063363466343338653963353333376162373331316433326436353738
63323339346134626131316136663736313737653866393135356262363832613262316139613963
32646532343639303732643432306239656135663363643263393832383936373837626665616662
37373865303364373035363832633932323233396336363863336338613237623637323665386536
37313164646266663135336432363963643630366434356230626663343534376330343461366664
33623261313662663636346361386332343630396164616137303364643661643736653462323062
32613335653732373365646566393930666561383465376665383531393037343638633763633563
38613164373332306237373737623839386336613166333139656264336131326631343438373235
31343739363366396464623662373539613433346438626335303765623738393930666430303139
66386264623666393234623032386135323231653965393466656634353532616530306265306666
62663039333231316130353061313233666639633563346635623464363135383863666532323432
63376664343630633631393232636364633036636230663864323437636439623961613634613638
38626161646166336138373931393464633030323338663763383135316665346137646139333530
61386233373538636433363832363537313766363566623961346336353532303761313664383032
646138346562616433343462303065306236

View File

@ -0,0 +1,24 @@
version: '3.9'
services:
syncthing:
image: syncthing/syncthing:1
restart: unless-stopped
ports:
- 22000:22000/tcp
- 22000:22000/udp
volumes:
- syncthing-data:/var/syncthing
- ./config/cert.pem:/var/syncthing/config/cert.pem:ro,z
- ./config/key.pem:/var/syncthing/config/key.pem:ro,z
- ./config/config.xml:/var/syncthing/config/config.xml:ro,z
hostname: "Netcup"
labels:
- "com.centurylinklabs.watchtower.scope=update"
environment:
- PUID=0
- PGID=0
- TZ=Europe/Berlin
volumes:
syncthing-data:

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=blog

View File

@ -0,0 +1,18 @@
version: "3.4"
services:
tobiasmanske.de:
image: registry.tobiasmanske.de/tobiasmanske.de:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.tobiasmanskede.rule=Host(`tobiasmanske.de`) || Host(`www.tobiasmanske.de`)"
- "traefik.http.routers.tobiasmanskede.entryPoints=websecure"
- "traefik.http.services.tobiasmanskede.loadbalancer.server.port=80"
- "com.centurylinklabs.watchtower.scope=http"
restart: always
networks:
- gateway
networks:
gateway:
external: true

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=caddy

View File

@ -0,0 +1,10 @@
{
auto_https off
}
{% for rule in redirect.hosts %}
http://{{ rule.from }} {
redir https://{{ rule.to }}{uri} permanent
}
{% endfor %}

View File

@ -0,0 +1,21 @@
---
version: "3.4"
services:
redirect:
image: caddy:2
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro,z
labels:
- "traefik.enable=true"
- "traefik.http.routers.caddyredir.rule={{ redirect.hosts | map(attribute='from') | map('regex_replace', '^(.*)$', 'Host(`\\1`)') | join(' || ') }}"
- "traefik.http.routers.caddyredir.entryPoints=websecure"
- "traefik.http.services.caddyredir.loadbalancer.server.port=80"
- "com.centurylinklabs.watchtower.scope=update"
restart: always
networks:
- gateway
networks:
gateway:
external: true

View File

@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=watchtower

View File

@ -0,0 +1,46 @@
---
services:
update:
image: containrrr/watchtower:latest
container_name: Watchtower
privileged: true
environment:
DOCKER_CONFIG: /config
WATCHTOWER_POLL_INTERVAL: 21600
WATCHTOWER_CLEANUP: 1
WATCHTOWER_ROLLING_RESTART: 1
WATCHTOWER_SCOPE: update
WATCHTOWER_NOTIFICATIONS: slack
WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL: https://discord.com/api/webhooks/{{ watchtower.discord.webhook }}/slack
WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER: Watchtower
WATCHTOWER_NOTIFICATION_SLACK_ICON_EMOJI: ":whale:"
WATCHTOWER_NOTIFICATION_SLACK_ICON_URL: https://raw.githubusercontent.com/containrrr/watchtower/master/logo.png
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/core/.docker:/config
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=update"
http:
image: containrrr/watchtower:latest
privileged: true
container_name: HTTP
environment:
DOCKER_CONFIG: /config
WATCHTOWER_POLL_INTERVAL: 900
WATCHTOWER_CLEANUP: 1
WATCHTOWER_ROLLING_RESTART: 1
WATCHTOWER_SCOPE: http
WATCHTOWER_NOTIFICATIONS: slack
WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL: https://discord.com/api/webhooks/{{ watchtower.discord.webhook }}/slack
WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER: Watchtower
WATCHTOWER_NOTIFICATION_SLACK_ICON_EMOJI: ":whale:"
WATCHTOWER_NOTIFICATION_SLACK_ICON_URL: https://raw.githubusercontent.com/containrrr/watchtower/master/logo.png
volumes:
- /home/core/.docker/:/config/
- /var/run/docker.sock:/var/run/docker.sock
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=http"
...

View File

@ -0,0 +1,12 @@
---
all:
hosts:
host.nc.chaoswg.org:
# ansible_host: 192.168.0.52
# ansible_host: 185.216.177.198
ansible_user: core
network_interface: ens3
children:
unprovisioned:
hosts:
# host.nc.chaoswg.org: null

203
coreos-config/playbook.yaml Normal file
View File

@ -0,0 +1,203 @@
---
- name: Render compose files
hosts: localhost
tags: template
vars:
render_path: "./render/compose"
render_blacklist:
- EMPTY
tasks:
- name: Read Variables
include_vars:
dir: vars
extensions:
- 'yml'
- 'yaml'
- file:
state: absent
dest: '{{ render_path }}'
changed_when: false
- file:
state: directory
dest: '{{ render_path }}/{{ item.path }}'
changed_when: false
with_filetree: './compose'
when: item.state == 'directory'
- name: Template Compose structure
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ render_path }}/{{ item.path }}"
force: true
changed_when: false
with_filetree: './compose'
when: item.state == 'file' and item.path not in render_blacklist
- name: Copy blacklisted files
copy:
src: "{{ item.src }}"
dest: "{{ render_path }}/{{ item.path }}"
force: true
changed_when: false
with_filetree: './compose'
when: item.state == 'file' and item.path in render_blacklist
- name: Backup
hosts: all
become: true
become_user: root
tasks:
- name: Read Variables
include_vars:
dir: vars
extensions:
- 'yml'
- 'yaml'
- name: Install backup script
ansible.builtin.template:
src: backup.sh.j2
dest: /root/backup.sh
mode: '0700'
owner: root
- ansible.builtin.file:
path: /root/.ssh
owner: root
state: directory
mode: '0700'
- name: Install SSH Keys
ansible.builtin.template:
src: storagebox.j2
dest: /root/.ssh/storagebox
mode: '0600'
owner: root
- name: Add Known Hosts entries
ansible.builtin.known_hosts:
path: "/root/.ssh/known_hosts"
name: "{{ backup.known_hosts.name }}"
key: "{{ backup.known_hosts.key }}"
- name: Restore from Backup
hosts: unprovisioned
become: true
become_user: root
gather_facts: true
tasks:
- block:
- name: Read Variables
include_vars:
dir: vars
extensions:
- 'yml'
- 'yaml'
- name: Install backup script
ansible.builtin.template:
src: restore.sh.j2
dest: /root/restore.sh
mode: '0700'
owner: root
- name: Restore from Borg
become: true
become_user: root
ansible.builtin.command:
chdir: /
cmd: bash /root/restore.sh
- name: Remove script from host
ansible.builtin.file:
path: /root/restore.sh
state: absent
- set_fact:
provisioned: true
cacheable: true
when: ansible_facts.provisioned is undefined
- name: Setup Registry credentials
hosts: all
tasks:
- ansible.builtin.file:
path: /home/core/.docker
owner: core
state: directory
mode: '0700'
- ansible.builtin.template:
src: docker-config.json.j2
dest: /home/core/.docker/config.json
mode: '0600'
owner: core
- name: Docker-Compose
hosts: all
tasks:
- name: Gather local Config
delegate_to: 127.0.0.1
find:
paths: ./render/compose
recurse: true
file_type: file
register: local_compose_files
- name: Gather Remote Config
find:
paths: /home/core/compose
recurse: true
file_type: file
register: remote_compose_files
- ansible.builtin.debug:
var: local_compose_files
verbosity: 2
- ansible.builtin.debug:
var: remote_compose_files
verbosity: 2
- ansible.builtin.set_fact:
compose_dirs_tainted: "{{ remote_compose_files.files | map(attribute='path') | difference(local_compose_files.files | map(attribute='path') | map('regex_replace', '^render/', '/home/core/')) | map('dirname') }}"
- ansible.builtin.debug:
var: compose_dirs_tainted
verbosity: 2
- name: Stop tainted Compose Services
community.docker.docker_compose:
project_src: "{{ item }}"
state: absent
loop: "{{ compose_dirs_tainted }}"
- name: Copy Compose files
ansible.posix.synchronize:
src: ./render/compose
dest: /home/core/
archive: false
checksum: true
delete: true
recursive: true
mode: push
# directory_mode: "0750"
# mode: "0640"
# owner: core
register: compose_files
- ansible.builtin.debug:
var: compose_files
verbosity: 2
- name: Restart Compose projects
vars:
docker_restart: "{{ lookup('env', 'DOCKER_RESTART') | default('false', true) | bool }}"
block:
- find:
paths: /home/core/compose
recurse: false
file_type: directory
register: compose_directories
- ansible.builtin.debug:
var: compose_directories
verbosity: 2
- name: Restart Compose Projects
community.docker.docker_compose:
project_src: "{{ item }}"
state: present
restarted: true
recreate: smart
build: true
remove_orphans: true
loop: "{{ compose_directories.files | map(attribute='path') | sort }}"
when: compose_files.changed or docker_restart
...

100
coreos-config/setup.bu Normal file
View File

@ -0,0 +1,100 @@
---
variant: fcos
version: 1.4.0
systemd:
units:
# Installing vim as a layered package with rpm-ostree
- name: rpm-ostree-install-pkg.service
enabled: true
contents: |
[Unit]
Description=Layer packages with rpm-ostree
Wants=network-online.target
After=network-online.target
# We run before `zincati.service` to avoid conflicting rpm-ostree
# transactions.
Before=zincati.service
# Otherwise vagrant will try to run the playbook before we got python
Before=sshd.service
ConditionPathExists=!/var/lib/%N.stamp
[Service]
Type=oneshot
RemainAfterExit=yes
# `--allow-inactive` ensures that rpm-ostree does not return an error
# if the package is already installed. This is useful if the package is
# added to the root image in a future Fedora CoreOS release as it will
# prevent the service from failing.
ExecStart=/usr/bin/rpm-ostree install --apply-live --allow-inactive vim python docker-compose borgbackup
ExecStart=/bin/touch /var/lib/%N.stamp
[Install]
WantedBy=multi-user.target
# Make sure docker is actually starting without a call to the socket.
- name: docker.service
enabled: true
- name: borgbackup.service
contents: |
[Unit]
Description=Run Backup of /var/lib/docker
[Service]
ExecStart=/usr/bin/bash /root/backup.sh
[Install]
WantedBy=multi-user.target
- name: borgbackup.timer
enabled: true
contents: |
[Unit]
Description=Daily backup
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
storage:
filesystems:
- device: /dev/disk/by-partlabel/root
wipe_filesystem: true
format: ext4
label: root
files:
# Set vim as default editor
# We use `zz-` as prefix to make sure this is processed last in order to
# override any previously set defaults.
- path: /etc/profile.d/zz-default-editor.sh
overwrite: true
contents:
inline: |
export EDITOR=vim
- path: /etc/hostname
mode: 0644
contents:
inline: host.nc.chaoswg.org
- path: /etc/zincati/config.d/55-updates-strategy.toml
contents:
inline: |
[updates]
strategy = "periodic"
[[updates.periodic.window]]
days = [ "Fri", "Sat" ]
start_time = "23:30"
length_minutes = 60
links:
- path: /etc/localtime
target: /usr/share/zoneinfo/Europe/Berlin
passwd:
users:
- name: core
groups:
- docker
ssh_authorized_keys:
- cert-authority,principals="rad4day,rad4day@chaoswg.org" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKUN/Ik3CqhsVLGEkl2rJLUhC0AXFmVp6BgETaqgVKq5 user-ca@chaoswg.org
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKhzs4vCOhy3yH2TF2bO5Qalt2P4WG4nDYTLarPKFrdM ansible@provisioner
- name: borgbackup
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEeiXrwUxnzo/MLn3PdT3shFIJu7zia8uwlcQhyPautw borgbackup@remote
...

View File

@ -0,0 +1,68 @@
#!/bin/sh
# Setting this, so the repo does not need to be given on the commandline:
PUSH_KEY={{ backup.pushkey }}
# See the section "Passphrase notes" for more infos.
export BORG_PASSPHRASE='{{ backup.password }}'
export BORG_REPO=ssh://{{ backup.remote.user }}@{{ backup.remote.url }}
export BORG_RSH='ssh -i /root/.ssh/storagebox'
# some helpers and error handling:
info() { printf "\n%s %s\n\n" "$( date )" "$*" >&2; }
trap 'echo $( date ) Backup interrupted >&2; exit 2' INT TERM
info "Initialize Repo"
borg init -e repokey
info "Starting backup"
# Backup the most important directories into an archive named after
# the machine this script is currently running on:
borg create \
--verbose \
--filter AME \
--list \
--stats \
--show-rc \
--compression none \
--exclude-caches \
--one-file-system \
--exclude "re:^/var/lib/docker/volumes/[a-z0-9]{64}/.*" \
::'{hostname}-{now}' \
/var/lib/docker/volumes
backup_exit=$?
info "Pruning repository"
# Use the `prune` subcommand to maintain 7 daily, 4 weekly and 6 monthly
# archives of THIS machine. The '{hostname}-' prefix is very important to
# limit prune's operation to this machine's archives and not apply to
# other machines' archives also:
borg prune \
--list \
--prefix '{hostname}-' \
--show-rc \
--keep-daily 7 \
--keep-weekly 4 \
--keep-monthly 6
prune_exit=$?
# use highest exit code as global exit code
global_exit=$(( backup_exit > prune_exit ? backup_exit : prune_exit ))
if [ ${global_exit} -eq 0 ]; then
info "Backup and Prune finished successfully"
/usr/bin/curl -fsS -m 10 --retry 5 -o /dev/null https://monitor.chaoswg.org/api/push/${PUSH_KEY}?msg=OK&ping=
elif [ ${global_exit} -eq 1 ]; then
info "Backup and/or Prune finished with warnings"
/usr/bin/curl -fsS -m 10 --retry 5 -o /dev/null https://monitor.chaoswg.org/api/push/${PUSH_KEY}?msg=OK&ping=
else
info "Backup and/or Prune finished with errors"
fi
exit ${global_exit}

View File

@ -0,0 +1,11 @@
$ANSIBLE_VAULT;1.2;AES256;secrets
32643032393961616163376565363738383166373031393037306436383037663736613439326166
6439663833356435653161636132616133663062333063640a373137646539616561376535313739
31373932393934666133356332646237636563623631316233303962393637386534313966353839
6164343438666539390a643032333839633737336162383830386436653462363963643639616164
66656233643639613639663962383261356661343232663365353031623533643238303838373764
35633838383533666662636263656562633865396330653733616366386232353162656362626161
32383830346363313536336632656265636437323665316362303966366439316533333934373039
36633531383831363533323734373936633339373562633563663863623733346662613435636664
36633233333961396633313234303962376535616139323062316137616536326235346231666238
6231363536663534653466633730316637313162303837626366

View File

@ -0,0 +1,53 @@
#!/bin/sh
# Setting this, so the repo does not need to be given on the commandline:
# See the section "Passphrase notes" for more infos.
export BORG_PASSPHRASE='{{ backup.password }}'
export BORG_REPO=ssh://{{ backup.remote.user }}@{{ backup.remote.url }}
export BORG_RSH='ssh -i /root/.ssh/storagebox'
{% if provision.from_backup.name is defined %}
RESTORE_FROM={{ provision.from_backup.name }}
{% else %}
RESTORE_FROM=$(borg list --short --sort-by timestamp --last 1)
{% endif %}
{% raw %}
# some helpers and error handling:
info() { printf "\n%s %s\n\n" "$( date )" "$*" >&2; }
trap 'echo $( date ) Backup interrupted >&2; exit 2' INT TERM
# Backup the most important directories into an archive named after
# the machine this script is currently running on:
# Starting restore
info "Starting Restore from backup"
cd /
borg extract \
--list \
--exclude "re:^/var/lib/docker/volumes/[a-z0-9]{64}/.*" \
"::${RESTORE_FROM}"
restore_exit=$?
# use highest exit code as global exit code
global_exit=$restore_exit
if [ ${global_exit} -eq 0 ]; then
info "Restore finished successfully"
elif [ ${global_exit} -eq 1 ]; then
info "Restore finished with warnings"
else
info "Restore finished with errors"
fi
exit ${global_exit}
{% endraw %}

View File

@ -0,0 +1 @@
{{ backup.remote.keyfile }}

7
coreos-config/vagrant.bu Normal file
View File

@ -0,0 +1,7 @@
variant: fcos
version: 1.4.0
ignition:
config:
merge:
- local: ./vagrant_INSECURE.ign
- local: ./setup.ign

View File

@ -0,0 +1 @@
{"ignition":{"version":"3.0.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":["ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key"]}]}}

View File

@ -0,0 +1,143 @@
$ANSIBLE_VAULT;1.2;AES256;secrets
36393338343065303033326166633764353465633263386536386164343634316334653239663135
6339323462303631316266316565613265316433366166620a663163616435323161633835663164
35666630366263393538333032313962613635376566613261386464636533636133316132396462
3138633037366339330a373738616233366431386164316664313031383538396138386535323764
30303234643638666361623236393034386665633239653234343066613935343063636462326330
36336635373533376237623730653638343237613138666139356536353735396633396533323734
34383735623632333132346163303738646132633865313666393962613866656536343861376137
30336363383239646236623734623264366136373164653731633665323735373966323939373762
33346632306230306561333838363038396333316637613138646562653837336231633137376234
35613830343931386237316536633564666634373434383732646665323963653030616665353236
35386539633732653232383432383630323539376230363936336231646161656635663539326633
64366138363363623164623539333135393963623237376335653736356132396138636535373032
62616430653234333938666663346537353965663536333932636161313634373064363336626131
62636332323237613063343765316166306232353165373336643539306630663437373862383264
34616661313732653862303065666162623462316265313936363236653231646632663636373833
37353463633062323965306461353962343132643832626162643564613161666462343963346237
66616237333063666631313630663933353533366535663534343032653031356638633766333639
30343231633262373130666638396432386437353034633165306235636238666266356632333139
61363032623630643631626631306365633731616565663665343530383962393466323433383962
64663564343861303263323164373832636135643631383164346430363632663362383630326434
39393730346530363933643239373832313566323736393934323532303436313539333731363539
63323766653038346133373262376137373633613836643936333734343435356631333062303761
39373837656531363132393239323339666665666364633634323233366662316535626637306137
30653732336634623830643630313034386239356236353632653764653238343137303035326666
61656132383436313763653366363665623238326338613834363164333434306133326630623563
61303961373161396237353761393766616436336663386636663937343732313436353439313337
30333036316261613461326564336364376432353930323239643435386164313831323930323464
66616337663634633937303636616531316536366162316339343831653035633835313235636664
35663636313863633736623965333535303935643632396437656162313565363435386338363765
62636266653866393661313839643961633031363735376536663762386265623832323336396533
39393835393434633539343939343936353031303031306164313066623234363337326136656631
33376435346663643661376362383065613038386233363338373538373130306634313335306562
39646362323432376132396465393437356463343936633361353163613963613634623034303138
66383933646533333665646632303465313563653031623165633334643338396530663263653239
66333530316462363062613233373039663134393733383363616239626131383964353133616239
39623961316237653765623136386634396534386663663633343961353065353665393338343438
66353066396531653639363838323865383539636232346135366236633738383566363663626461
61303666306336316530326638396339613132343161333030383838386464643535383236313132
32376238636639323030636135373034346336613636656439666137363333373035633330666436
34313661643331373536623034653163656664353231316435366464343565643865303866616533
32323437333934363963666462653530643233333066653831636434376436383332636461336365
62396266353763663264303462373337383839323730663764363162333437363032323663383539
34313131616333336131346231633432363035363364633138613366383064303665353964666432
64656630393564396133383735666132373537643738623435613134663066333139666361373664
64633565356264343866636362336262666635366630316430393137633433643965623166636262
66316165306434626331666166653431353633396161623333623035626131316465333862323061
30663237323131353731666230333830396137373163356438633536393939366562396334373065
33383435306532303338613462326461656435346163326539306433373733366630373837653035
31333332306430383432663165363432306335663064363666396364666164343637343632366231
34656263326334633533623033303239306264643534376433376335656232336439663833613862
61653432663936336633326532663162653137343336653164326265633732653861313737373939
64393463656664613663383362653661393161326263363132656365323161613533356231343365
35326564626233643039623838383061366164376639346161626237636366373262353737643034
30633066356364663038303665656563303535636364373962366333356238376333663231376461
32393464616631303038626165326637626662643436386263626636326534303265303232343831
31313131346462313437663834366532333037353565653538626638363934366135633837613235
30636239306131316164353433663735336537303064613132386630636333663431646362313639
32303166653938396433393631613834303661653137363239343739306265663961363561646462
62666539643831383032363836616433393136653263353263303266376533653936656532646564
32386338333261613835333866303431663733333032663661353630346365333931363063313065
33363733343739313330323963386432326632313439646336336231666663653532646365366139
65333234393937343139393132666165343536383765623866363665346139626464623631666436
35323163333234663534316530643363366566353661623061313437313462623066326261633937
64316636353361646465633139626661313863636137623536616630396338663734396138623665
36363866313533643530363361343139663739663739376432626637643637313039326261653233
61373466373031356337346561613239303364643835363863396265376665633436393735383566
34613265636662643134646133623539366639663332333832306663316139386665663466623530
39666236643964333333613433383031336663326336386366633230616662613866643166383437
63653164313430333761653666613935323266366362383833333335303561323135373262613164
64623232666564623963366266363861383439376638366235323838346639393863613834326337
66323561636536613166303963633063353237333636353762343962323330366133666337636232
34376434393161643336663234326663613035343934613035346666666331373537343038623037
34643731346362346139303463353662386336366363656161333834383764346562303761623830
39366337366336356539636133393538386163313734656238373963326230303062656335643465
33386438386465363937343239643333616564343134653438636139363538643439633066376261
64346431636565343638616338663362393834656537643639383864333066633332383864336530
31376361376164643136666437616634366438353436633663646366323337313166626231613765
33653335663866333137366431326638623264323034396330326362376239656366336264323633
62653237313165363235306534316630653537636535303064333731366538663733623435653438
37653862373231623664393966353436346665623736643435343931623963343866323633333365
63653565313132343632393531623661366536386634333331623236336236373139656562646333
34316461376132643737623565633465393162396136393061363565363833666336386264326537
64386363613734376338363066333838613637393630326661346533643837616166373366303534
37313835623662626164346662353132343766383536326435323538343432643737653239313363
33393263616332646238623339663665343132656163633336393037356335626164316261613163
63336365376162326131323033653266383532396436613931383131373330343438316237343531
64656162353738616438316130323334613363303135663331366338663563616464326361643737
62356537343433623339613137616434373736393366363632373063373736376530313264333666
61346234396130646633613862636239396536383336623066646136626564386136396166383437
65653839303665616462316437383430646163306436646534626366313034333932646630306161
30613766653039623861306539613137376562373761326364306164613634653331363536663830
64646165333839343137656164313666343030643737323934316164323739393566326463623365
39343961623262653133343066353133316238393937383234386438366466353934326238393637
34326461666337653661396432356262663239333132396436346666656534306138643064356163
35636336656134626131643830393230623362626464376131326436313439313966376662316262
36396234356362343538393266643037643664326661356434623635356162336531373833316532
33333265363937346433386164383863613834313434386366396435663731353636336366323064
63306339326135306564336665306261363634316663656562653137306533353435363566376437
63356231383862393635346136613164616131326434663664613830636163326238663931653031
34356664306433376633303866666539346133356532643330656139373731316134653733656265
61356231623263633361373339326265313139663332396533383231306234636230343230343962
65636565646236623465393337333261626636616366333961313039313866353436653865333539
34633830313836353265653833373036323365303132613530353730373733316666626332373663
38616337306238353766303166626236663462646134366663393365336365313363353539326366
39333261326566656266363262616537613463663266393362363531616337623965633935653737
39396464353537623533663865303365376137303762326637376638656166363539376361393166
30343736363964356666363738376537393937633338366562326132323264663066646362353935
64393164396361373762303438366438666435383137636564643932383737333035333166666533
32613563613566323963346662313739353132313632616535393666643161343961323634363463
66313562663231353130333566663565633634663462313762316538333430643834386338346166
65303935303765656431663364613133396466376466346561643166663761363762383235623135
61666365646239306133393035653731336163303964643838333231333839656331336366633163
64376366613937366430626139613333653064303430316563376266303032366639646234306135
30346339653164353937333131613935383865393634313165643230353139633661356637353562
34396237653363653233663937643035303362376334663766346535656361303431396639306232
63366335343736333866643766643835373036643366343330653834353230353932336232323365
64333833326261663435323133633434383865343562353737663332383031343761623032663135
62316432323234356134393037643735383134366237616161643261336530663830323035383765
35356162336666326330626237336261353235633564313536356339346333343832303964373036
36643964323763613039386230383466396466653461306563333135343132366532313533613435
32636438313530616466363230363032653566353562366364343536363665643231333831366364
65646331336439663666663565623362343430353462376334313334326661613134636335626437
66633335343234383031353165633065653164323034343865393565633038373736326364646136
39373138373437323465376535346438353962623738643830323835313263316339333331316364
38656430613631643130316334666532663530383562643534313537653465643535303338346466
62396339623534626563366135646266666331323733313634633734646162383363343964376463
32343563386131323135663531306536326661633739316439316238616562383164653464393166
32346365353436383263366434666563343136633861313233623262316134396163353837373862
62626634393135623334643565653962323136663864616331353530306532353930356430353064
32316630356531326338316161313166343037306539366131396266616133646361373731663961
65613963653761393932383931383631363739663864343066383836366433353066313932663662
61323939323831633065393061393166393431363966643137633439623963653432646236643737
65616431616636376438383837353661303461303931613234363065386332363663353235633230
65353532353036636366653238323662346362326132646263373137666564336666646435653262
32343665373637323462383864343565626363306533636239353431663833613865636238373761
31643931303134623866613761656232383962633534653937373330356636666666383638366136
37393030353139313165316633613232343362333738346130323135393366353464633437376532
64373162306534326637353039643963633338313862316630656136323934636138333563346364
31333266336466306336356363303361356237373465656263623465636565613464643266626166
62616364303337363063626339303637346239363732373130393132393633333635616435366334
35643735343863383432366464353664353039643832376638386236633931646163663237326133
6437646666363736393734383037663335363261333730646539

View File

@ -0,0 +1,74 @@
$ANSIBLE_VAULT;1.2;AES256;secrets
65623539363936656339663865666138346433666366633339663438626338313163636435383339
3938613366653432313166383936633462666433623738390a313439376163303332623939303430
39353034643536326635613935643430323332336265316666326537613662313531633131326564
3831643134623131380a353561333330643666333232656438353364623738663835313832663634
61666537386439323130623630663037303837316138373837393961653532643864303862633933
63366132393664663230396661303964633366623761663961646638626265356665613035383431
61663865336232633935383562626332376464343263303831366435303833323638643436633264
66323266373966366432306562306266306362613330366333616531313233373236346461316236
63396231373064313934633132633738623333373138663765386432376137333835653862613865
35623738366531303263313463396531316439663230363635343035663364343039376664666136
61326463663739646138646464663931653034333830383565343230653534303839653561653934
38643432653339643963363164663961323065316239356533653033646465353731336339663538
62366231356237393461613938396534346234653139336333373537333336373937323934306330
38613337643564343833306536303563376132636331333731353531333836643039656132626333
33376231326666323962303764393836623330316564316432363066343338396463646265333935
63376633613330313936626336653934306637643431643465333765353662663335366237623539
36643431363632373166663165346364363136333738303731346461623438323231643732623666
31663065356164383431633662623766316530366336316238646533376435393834303232333630
63633531313737663631363033653435393263323763656438376336373033343834646330313434
31326436643836653663383166626534323931616564343734313235373633353061353835623035
35636339633033323763343563653062386166333934656161313465343866306565626536633361
38653535613463343366373436356535616664343965386361353335613731633633323666666462
36303035663561643839323339316562363630376230333630633636623536653064303966633964
62303539633763363933303837313366653063383537393935316635303630316563336562616336
34333038643762653238373861343062313731353434386434343665346231396165303733663465
63306437333864613561373566326466356130656537623137623230643263316633383430663661
30666330333438316365306161616532663136376464363062386539646434653565643961653861
37353362653132376233303561363861383739323631613131303363623734623830313637346531
66313764386564646230333264616139383463666635666637353637303132623766393761306662
38366166326438326435383634663834623833663231373834633964623332333633613130333666
35303932613462616332376234663663383232313064613130633062613532396466663764316638
36333036653766636133306663613765346234393063353861323738356435623831356461613534
30613039363864323864373662396633653430363165366337353530653961653334346635656234
62373631323632313561366539373433343238366266363562376162646263353864656133653437
66333432356364343730393439633037333862386164343563373031333635323661653763386639
63396566303163343336313766333936313863343138646232616531386437643961363661373937
65303030386236613738313333313864326362363464373530383031626432316461626464666463
31633065313966373938646633633839333331356332336363373763653839623137643966373865
35393437383362626534373930393831636233393865653438636636656265623763383835623037
32336661313732313337633237356263393030656666366430646334373233323433366435633334
30353735303437386666323964303865613334393036383532643563363237376633313031383130
38643165313834306465656430613834646333666334353836613435613135643639363665653232
62376435336630616632386130386136356537663734303932333366343563326261623139303839
32643834373766383066396261623236393166383539303263323932643366373439613234313134
31663761396332343436363665393363373563356165363366316466306137303630383762613331
30646262616661373361393932353263633235363431306361346266353863613339613530346264
35383865616532363366393736353366626338306634663263666336636466373762303337336466
35666433343264386130333463643931306338363063373765646436313632653733343162666331
30653434346266663131373531393966326162653566646536356533356262336632653736353336
30656535356430313661356137383166386337613163643731646164636664386531326563303537
34333663396265663435396261383534383633346239366632323462386334323233333664343930
34653765326339333265616538363164643932366464353066356433633330323763633862353239
35313062363864363132393464653663386239323062656235313361383933366266313666623135
62333936366261303831363931306434343330386632623638653566356538376335663961343735
38656436623364363438366533306463633234316639656564326165643065366565383261623165
33323134663530633865643462663131333664653365666134373434386139613034663964353065
63646561316139383163313332316238326132363661666566666233626536396365376634613433
34306231626361326636653034646239643466393838363166663639323835386633666632356461
33633766303364326464383061333664666232326338313863653334666365646230326630303435
38633237393138363730313736386662373631393631376461323937363737656464316237386336
37336330626438643166363131623030386235653537336133356264613634323537303464303962
65626334323834316666643564343233346535393165323534326539653938363735336636353534
34336539626134373963303737663431306266363766666363383532386438393366376464623763
35363732306631333032373065393933663130613639326331613763646136383235636433623964
39383331633465383033653434386562393030633034313365336366313430326265323038346663
34356635386466393439636434323464613639616261363037326234346130653938373330636531
34633130316632326335346434613834356630656162393739306561623166363436316161613566
61376465393932373934386466306462366133363933633839623764343330313561333666386333
65623739663665653466396461646433373434663766663430306363646666653763353762366639
38616661326334383737623064323234316134313537363333653666636238303061356132303533
63303639386535376166656431623937343661376632343232396537613565643235336631336235
66313139373562613338383564363830343638346439306430356534656635346163306137623966
30346165373236313831396363333535303038373431316231316134343531653137