From c9d6f21a6380ee69e3cf751dcf3061aaee478801 Mon Sep 17 00:00:00 2001 From: Joey Hafner Date: Tue, 8 Feb 2022 22:29:15 -0800 Subject: [PATCH] Intialize folders for all projects --- docs/GITLAB.md | 33 ++++++++++++++++ gaming-vpn/README.md | 0 jafner-chat/README.md | 0 jafner-tools/5etools/docker-compose.yml | 20 ++++++++++ jafner-tools/README.md | 0 jafner-tools/joplin/.env | 10 +++++ jafner-tools/joplin/docker-compose.yml | 34 ++++++++++++++++ jafner-tools/traefik/acme.json | 44 +++++++++++++++++++++ jafner-tools/traefik/docker-compose.yml | 18 +++++++++ jafner-tools/traefik/traefik.toml | 18 +++++++++ jafner-tools/uptime-kuma/docker-compose.yml | 16 ++++++++ jafner-tools/vaultwarden/docker-compose.yml | 16 ++++++++ nas/README.md | 0 router/README.md | 0 seedbox/README.md | 0 15 files changed, 209 insertions(+) create mode 100644 docs/GITLAB.md create mode 100644 gaming-vpn/README.md create mode 100644 jafner-chat/README.md create mode 100644 jafner-tools/5etools/docker-compose.yml create mode 100644 jafner-tools/README.md create mode 100644 jafner-tools/joplin/.env create mode 100644 jafner-tools/joplin/docker-compose.yml create mode 100644 jafner-tools/traefik/acme.json create mode 100644 jafner-tools/traefik/docker-compose.yml create mode 100644 jafner-tools/traefik/traefik.toml create mode 100644 jafner-tools/uptime-kuma/docker-compose.yml create mode 100644 jafner-tools/vaultwarden/docker-compose.yml create mode 100644 nas/README.md create mode 100644 router/README.md create mode 100644 seedbox/README.md diff --git a/docs/GITLAB.md b/docs/GITLAB.md new file mode 100644 index 0000000..3c1f608 --- /dev/null +++ b/docs/GITLAB.md @@ -0,0 +1,33 @@ +# Goal +Spin up a Git server with a greater feature set than Gitea. +Specifically, I want: + - Integrated CI/CD. I would prefer a platform that comes with a 1st party CI/CD solution, rather than plugging in a 3rd party solution. + - Container/image registry. Building a locally-hosted registry for images enables better caching. + - Enterprise-competitive platform. Getting experience with a platform that competes with other enterprise SCM solutions is more valuable than something designed for a smaller scale. + +# Plan +1. Create the host mount points for the docker volumes: `mkdir -p ~/docker_data/gitlab/data ~/docker_data/gitlab/logs ~/docker_config/gitlab/config` +2. Import the default GitLab configuration from [the docs](https://docs.gitlab.com/ee/install/docker.html#install-gitlab-using-docker-compose). +3. Customize the compose file: + 1. `hostname: gitlab.jafner.net` + 2. change the `external_url` under the `GITLAB_OMNIBUS_CONFIG` env var to `https://gitlab.jafner.net` + 3. Add the `gitlab_rails['gitlab_shell_ssh_port'] = 2229` configuration line under `GITLAB_OMNIBUS_CONFIG` with a new SSH port + 4. Remove http and https port bindings. Move host SSH port binding to a higher port. + 5. Change the volume bindings to match my conventions (`DOCKER_DATA` instead of `GITLAB_HOME`) + 6. Change the docker compose version to `'3.3'` + 7. Add Traefik labels to enable TLS. +4. Run the file and test. +5. Troubleshoot issues. +6. GOTO 4. +7. Import Gitea repos +8. Move Gitea from `git.jafner.net` to `gitea.jafner.net` +9. Update Homer with new service locations + + +=== + +# References + +1. [GitLab Docker images](https://docs.gitlab.com/ee/install/docker.html) +2. [GitLab SaaS vs Self-hosted](https://about.gitlab.com/handbook/marketing/strategic-marketing/dot-com-vs-self-managed/) +3. [Digital Ocean: How to Setup GitLab on a Digital Ocean Droplet](https://www.digitalocean.com/community/tutorials/how-to-setup-gitlab-a-self-hosted-github) \ No newline at end of file diff --git a/gaming-vpn/README.md b/gaming-vpn/README.md new file mode 100644 index 0000000..e69de29 diff --git a/jafner-chat/README.md b/jafner-chat/README.md new file mode 100644 index 0000000..e69de29 diff --git a/jafner-tools/5etools/docker-compose.yml b/jafner-tools/5etools/docker-compose.yml new file mode 100644 index 0000000..fdda57c --- /dev/null +++ b/jafner-tools/5etools/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3" +services: + 5etools: + container_name: 5etools + image: jafner/5etools-docker + restart: always + volumes: + - ./htdocs:/usr/local/apache2/htdocs + environment: + # using defaults + - IMG=false + networks: + - web + labels: + - traefik.http.routers.5etools.rule=Host(`5e.jafner.tools`) + - traefik.http.routers.5etools.tls.certresolver=lets-encrypt + +networks: + web: + external: true diff --git a/jafner-tools/README.md b/jafner-tools/README.md new file mode 100644 index 0000000..e69de29 diff --git a/jafner-tools/joplin/.env b/jafner-tools/joplin/.env new file mode 100644 index 0000000..a09cc6f --- /dev/null +++ b/jafner-tools/joplin/.env @@ -0,0 +1,10 @@ +DB_CLIENT=pg +POSTGRES_PASSWORD=postgres +POSTGRES_DATABASE=joplin +POSTGRES_DB=joplin +POSTGRES_USER=postgres +POSTGRES_PORT=5432 +POSTGRES_HOST=joplin_db + +APP_BASE_URL=https://joplin.jafner.tools +APP_PORT=22300 diff --git a/jafner-tools/joplin/docker-compose.yml b/jafner-tools/joplin/docker-compose.yml new file mode 100644 index 0000000..58049b0 --- /dev/null +++ b/jafner-tools/joplin/docker-compose.yml @@ -0,0 +1,34 @@ +version: '3' +services: + joplin: + image: joplin/server:2.6-beta + container_name: joplin + restart: unless-stopped + env_file: + - .env + depends_on: + - joplin_db + networks: + - web + - joplin + labels: + - traefik.http.routers.joplin.rule=Host(`joplin.jafner.tools`) + - traefik.http.routers.joplin.tls.certresolver=lets-encrypt + - traefik.http.middlewares.joplin.headers.customrequestheaders.X-Forwarded-Proto = http + - traefik.http.services.joplin.loadbalancer.server.port=22300 + - traefik.http.services.joplin.loadbalancer.passhostheader=true + joplin_db: + image: postgres:13.1 + container_name: joplin_db + restart: unless-stopped + env_file: + - .env + volumes: + - ./db:/var/lib/postgresql/data + networks: + - joplin + +networks: + joplin: + web: + external: true diff --git a/jafner-tools/traefik/acme.json b/jafner-tools/traefik/acme.json new file mode 100644 index 0000000..b544986 --- /dev/null +++ b/jafner-tools/traefik/acme.json @@ -0,0 +1,44 @@ +{ + "lets-encrypt": { + "Account": { + "Email": "jafner425@gmail.com", + "Registration": { + "body": { + "status": "valid", + "contact": [ + "mailto:jafner425@gmail.com" + ] + }, + "uri": "https://acme-v02.api.letsencrypt.org/acme/acct/388897850" + }, + "PrivateKey": "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", + "KeyType": "4096" + }, + "Certificates": [ + { + "domain": { + "main": "joplin.jafner.tools" + }, + "certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdMRENDQlJTZ0F3SUJBZ0lTQk5CWmcwL3g4UGtoeVFRb0lLUlB3NWdpTUEwR0NTcUdTSWIzRFFFQkN3VUEKTURJeEN6QUpCZ05WQkFZVEFsVlRNUll3RkFZRFZRUUtFdzFNWlhRbmN5QkZibU55ZVhCME1Rc3dDUVlEVlFRRApFd0pTTXpBZUZ3MHlNakF4TXpFeE9EQXhNakJhRncweU1qQTFNREV4T0RBeE1UbGFNQjR4SERBYUJnTlZCQU1UCkUycHZjR3hwYmk1cVlXWnVaWEl1ZEc5dmJITXdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDRHdBd2dnSUsKQW9JQ0FRQ3kvTi9ZL0tqUU92d1UvNVhpalFWcVd6Ri9lQnRnaDlWYlo4bDZlOHRNZXFycjRyMG0yMC8vQmp4NwpFN0NtOWFqOEpZN2tpM2hmeEpmNVNCdDROWHRmcUI3Q2tnOWtYS2lFTHJaRndFZThiWEU4RU5ERTdKcXRiOEhmCjFlT1ZlS1ZYRkU0ZCs0bHBZU0dBOHRPYjRSMWxFNm0zVkZMeCtoUG8zZWVubkRxRDdSblRWdXJnT2FCc0pHT3UKV25LRXZCanpaNnNVT3VHS1RoNFFsdDhEUVcvTHc2UHRTMmw5bnZzd2dTalVES3k5c2x6VnpEMlhpZG11R2hhUQo0UlBDeXE0dmhGcWpLZW5hRXVoeUZnL012cEtubW5uWjVsSFljblZRRkJFM3BmOXhCdGZGQzVVWVREQnk0N0MrCkpGR1E0NVlsM3dvSENtSE9BWnFranRRNjFHMEFuVUVzeExRSk1QeUVCOU4wUFNCdW9MSmdIa0JnaUh4N0NBdUwKbmc0R21SaGdCWU9GOUFidlg3VC9OTDZ0enBhYmZBWmZ5b3l3VC9GTWYzTTlOb1FtdlM3OGVReGZzcmZnWVVuYgo2dmVwV2dGcUM1Zy9yR09UTERsOHZlbnZSOUNUVk00U1J1N041SGc3aVNiSStkZDRTamZyMkF3QlVEbXpZZjQvCmJJWkF5VENUQlFvYXJ4STZuUzNGVjVjc1NmYm04UmREenhiRXBabXMxbnV0REtDUUxlUUM5bWt1WDJqelloSnUKKzBqYXdRUXVXYmhCSy9EUFdETjlIaUFqQi9wdld1VmI5YmoybUEyZXgvYVNWYmZ3MmZKVU9oMVhRTVNNUmxSaAo0eTJKSi9FdjRpSXc4VnI4dUgzVDhQQzNIRWlPR3piRzdlWFAzODhGWmpwZjlwb29kd0lEQVFBQm80SUNUakNDCkFrb3dEZ1lEVlIwUEFRSC9CQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0QKQWpBTUJnTlZIUk1CQWY4RUFqQUFNQjBHQTFVZERnUVdCQlFaSFpiQUNuN0JNUHM0SVNyREJ3UG1yTmdsb0RBZgpCZ05WSFNNRUdEQVdnQlFVTHJNWHQxaFd5NjVRQ1VEbUg2K2RpeFRDeGpCVkJnZ3JCZ0VGQlFjQkFRUkpNRWN3CklRWUlLd1lCQlFVSE1BR0dGV2gwZEhBNkx5OXlNeTV2TG14bGJtTnlMbTl5WnpBaUJnZ3JCZ0VGQlFjd0FvWVcKYUhSMGNEb3ZMM0l6TG1rdWJHVnVZM0l1YjNKbkx6QWVCZ05WSFJFRUZ6QVZnaE5xYjNCc2FXNHVhbUZtYm1WeQpMblJ2YjJ4ek1Fd0dBMVVkSUFSRk1FTXdDQVlHWjRFTUFRSUJNRGNHQ3lzR0FRUUJndDhUQVFFQk1DZ3dKZ1lJCkt3WUJCUVVIQWdFV0dtaDBkSEE2THk5amNITXViR1YwYzJWdVkzSjVjSFF1YjNKbk1JSUJCQVlLS3dZQkJBSFcKZVFJRUFnU0I5UVNCOGdEd0FIWUFLWG0rOEo0NU9TSHdWbk9mWTZWMzViNVhmWnhnQ3ZqNVRWMG1YQ1ZkeDRRQQpBQUYrc1lOVHNRQUFCQU1BUnpCRkFpQWFvNXkva0VEc3M3Q1V6WHpHRkJPWnh1M3N1NTM2TGxnU1krdzFJVlVUClV3SWhBSmd5VlhoS1pKQWo3M2pGd1NRekVNZHIxYysxZXYydmNRQW9hbDgwQlJhZkFIWUFRY2pLc2Q4aVJrb1EKeHFFNkNVS0hYazR4aXhzRDYrdEx4Mmp3a0dLV0J2WUFBQUYrc1lOVnRRQUFCQU1BUnpCRkFpRUEyZnFYbWZQQQpFd29wU21OUzdKNVMrYmlmYVV6NkxVSlVKaHRmYWNlbjVCa0NJRVR1ajRZdm9DSVB4RnpneXpVcXJZNVRhM29iCks3cXRYVDFLUTNlWTd1dGVNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUErUjdjZEdOVE9SNnk0SGcyQ0JTeEoKUVVya1J3c01YdU5VY1o1dFVOOU04VitPcFpZVkVHU3hGa2tWRktUM2owL09YeXhCWG0vWU4vU3dHUGNWNHhiTAowbzRPTVhHMkxubFk5RCsrT0F6bU1udWE3OVhmdXg2R0Y0ZkxoZjJiUS9KUWZaNzYxaWszMmgzbWE2NytGRkQ5CmRqZVdsRDU1Z0hIVUxvMkV1VWJVMUVaTUVWNk9Vd3FWVEVxaTV2Tk5ZUlhCOHdOS3orMUlPOEh5R0RFdCs4V3QKYlBkVGFWS3hReXE1UWpKbmlUVlE0UHRGMXU1am1aZWMvUUJhTS9uMVhkN1JVL0lJVHZiUDV5ZFBGbTc2UkY1ZwpLcjh2R0VuKzA5eVkyMUdRTm9vV3NzNUhEdmlsRGFwQ3hQTytHeWFaUXd0eG80ZHRtNCsvNTRScFkxMlMxVGR4Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlGRmpDQ0F2NmdBd0lCQWdJUkFKRXJDRXJQREJpblUvYldMaVduWDFvd0RRWUpLb1pJaHZjTkFRRUxCUUF3ClR6RUxNQWtHQTFVRUJoTUNWVk14S1RBbkJnTlZCQW9USUVsdWRHVnlibVYwSUZObFkzVnlhWFI1SUZKbGMyVmgKY21Ob0lFZHliM1Z3TVJVd0V3WURWUVFERXd4SlUxSkhJRkp2YjNRZ1dERXdIaGNOTWpBd09UQTBNREF3TURBdwpXaGNOTWpVd09URTFNVFl3TURBd1dqQXlNUXN3Q1FZRFZRUUdFd0pWVXpFV01CUUdBMVVFQ2hNTlRHVjBKM01nClJXNWpjbmx3ZERFTE1Ba0dBMVVFQXhNQ1VqTXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUsKQW9JQkFRQzdBaFVvelBhZ2xOTVBFdXlOVlpMRCtJTHhtYVo2UW9pblhTYXF0U3U1eFV5eHI0NXIrWFhJbzljUApSNVFVVlRWWGpKNm9vamtaOVlJOFFxbE9idlU3d3k3YmpjQ3dYUE5aT09mdHoybndXZ3NidnNDVUpDV0gramR4CnN4UG5IS3pobSsvYjVEdEZVa1dXcWNGVHpqVElVdTYxcnUyUDNtQnc0cVZVcTdadERwZWxRRFJySzlPOFp1dG0KTkh6NmE0dVBWeW1aK0RBWFhicHliL3VCeGEzU2hsZzlGOGZuQ2J2eEsvZUczTUhhY1YzVVJ1UE1yU1hCaUx4ZwpaM1Ztcy9FWTk2SmM1bFAvT29pMlI2WC9FeGpxbUFsM1A1MVQrYzhCNWZXbWNCY1VyMk9rLzVtems1M2NVNmNHCi9raUZIYUZwcmlWMXV4UE1VZ1AxN1ZHaGk5c1ZBZ01CQUFHamdnRUlNSUlCQkRBT0JnTlZIUThCQWY4RUJBTUMKQVlZd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSEF3SUdDQ3NHQVFVRkJ3TUJNQklHQTFVZEV3RUIvd1FJTUFZQgpBZjhDQVFBd0hRWURWUjBPQkJZRUZCUXVzeGUzV0ZiTHJsQUpRT1lmcjUyTEZNTEdNQjhHQTFVZEl3UVlNQmFBCkZIbTBXZVo3dHVYa0FYT0FDSWpJR2xqMjZadHVNRElHQ0NzR0FRVUZCd0VCQkNZd0pEQWlCZ2dyQmdFRkJRY3cKQW9ZV2FIUjBjRG92TDNneExta3ViR1Z1WTNJdWIzSm5MekFuQmdOVkhSOEVJREFlTUJ5Z0dxQVloaFpvZEhSdwpPaTh2ZURFdVl5NXNaVzVqY2k1dmNtY3ZNQ0lHQTFVZElBUWJNQmt3Q0FZR1o0RU1BUUlCTUEwR0N5c0dBUVFCCmd0OFRBUUVCTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDRnlrNUhQcVAzaFVTRnZOVm5lTEtZWTYxMVRSNlcKUFRObGNsUXRnYURxdyszNElMOWZ6TGR3QUxkdU8vWmVsTjdrSUorbTc0dXlBK2VpdFJZOGtjNjA3VGtDNTN3bAppa2ZtWlc0L1J2VFo4TTZVSys1VXpoSzhqQ2RMdU1HWUw2S3Z6WEdSU2dpM3lMZ2pld1F0Q1BrSVZ6NkQyUVF6CkNrY2hlQW1DSjhNcXlKdTV6bHp5Wk1qQXZubkFUNDV0UkF4ZWtyc3U5NHNRNGVnZFJDbmJXU0R0WTdraCtCSW0KbEpOWG9CMWxCTUVLSXE0UURVT1hvUmdmZnVEZ2hqZTFXckc5TUwrSGJpc3EveUZPR3dYRDlSaVg4RjZzdzZXNAphdkF1dkRzenVlNUwzc3o4NUsrRUM0WS93RlZETnZabzRUWVhhbzZaMGYrbFFLYzB0OERRWXprMU9YVnU4cnAyCnlKTUM2YWxMYkJmT0RBTFp2WUg3bjdkbzFBWmxzNEk5ZDFQNGpua0RyUW94QjNVcVE5aFZsM0xFS1E3M3hGMU8KeUs1R2hERFg4b1ZmR0tGNXUrZGVjSXNINFlhVHc3bVAzR0Z4SlNxdjMrMGxVRkpvaTVMYzVkYTE0OXA5MElkcwpoQ0V4cm9MMSs3bXJ5SWtYUGVGTTVUZ085cjBydlphQkZPdlYyejBncDM1WjArTDRXUGxidUVqTi9seFBGaW4rCkhsVWpyOGdSc0kzcWZKT1FGeS85cktJSlIwWS84T213dC84b1RXZ3kxbWRlSG1tams3ajFuWXN2QzlKU1E2WnYKTWxkbFRUS0IzemhUaFYxK1hXWXA2cmpkNUpXMXpiVldFa0xOeEU3R0pUaEVVRzNzemdCVkdQN3BTV1RVVHNxWApuTFJid0hPb3E3aEh3Zz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlGWURDQ0JFaWdBd0lCQWdJUVFBRjNJVGZVNlVLNDduYXFQR1FLdHpBTkJna3Foa2lHOXcwQkFRc0ZBREEvCk1TUXdJZ1lEVlFRS0V4dEVhV2RwZEdGc0lGTnBaMjVoZEhWeVpTQlVjblZ6ZENCRGJ5NHhGekFWQmdOVkJBTVQKRGtSVFZDQlNiMjkwSUVOQklGZ3pNQjRYRFRJeE1ERXlNREU1TVRRd00xb1hEVEkwTURrek1ERTRNVFF3TTFvdwpUekVMTUFrR0ExVUVCaE1DVlZNeEtUQW5CZ05WQkFvVElFbHVkR1Z5Ym1WMElGTmxZM1Z5YVhSNUlGSmxjMlZoCmNtTm9JRWR5YjNWd01SVXdFd1lEVlFRREV3eEpVMUpISUZKdmIzUWdXREV3Z2dJaU1BMEdDU3FHU0liM0RRRUIKQVFVQUE0SUNEd0F3Z2dJS0FvSUNBUUN0NkNSejlCUTM4NXVlSzFjb0hJZSszTGZmT0pDTWJqem1WNkI0OTNYQwpvdjcxYW03MkFFOG8yOTVvaG14RWs3YXhZLzBVRW11L0g5THFNWnNoZnRFelBMcEk5ZDE1MzdPNC94THhJWnBMCndZcUdjV2xLWm1ac2ozNDhjTCt0S1NJRzgrVEE1b0N1NGt1UHQ1bCtsQU9mMDBlWGZKbElJMVBvT0s1UENtK0QKTHRGSlY0eUFkTGJhTDlBNGpYc0RjQ0ViZGZJd1BQcVBydDNhWTZ2ckZrL0NqaEZMZnM4TDZQKzFkeTcwc250Swo0RXdTSlF4d2pRTXBvT0ZUSk93VDJlNFp2eEN6U293L2lhTmhVZDZzaHdlVTlHTng3QzdpYjF1WWdlR0pYRFI1CmJIYnZPNUJpZWViYnBKb3ZKc1hRRU9FTzN0a1FqaGI3dC9lbzk4ZmxBZ2VZanpZSWxlZmlONVlOTm5XZSt3NXkKc1IyYnZBUDVTUVhZZ2QwRnRDcldRZW1zQVhhVkNnL1kzOVc5RWg4MUx5Z1hiTktZd2FnSlpIZHVSemU2enF4WgpYbWlkZjNMV2ljVUdRU2srV1Q3ZEp2VWt5UkduV3FOTVFCOUdvWm0xcHpwUmJvWTdubjF5cHhJRmVGbnRQbEY0CkZRc0RqNDNRTHdXeVBudEtIRXR6QlJMOHh1cmdVQk44UTVOMHM4cDA1NDRmQVFqUU1OUmJjVGEwQjdyQk1EQmMKU0xlQ081aW1mV0NLb3FNcGdzeTZ2WU1FRzZLREEwR2gxZ1h4RzhLMjhLaDhoanRHcUVncWlOeDJtbmEvSDJxbApQUm1QNnpqelpON0lLdzBLS1AvMzIrSVZRdFFpMENkZDRYbitHT2R3aUsxTzV0bUxPc2JkSjFGdS83eGs5VE5EClR3SURBUUFCbzRJQlJqQ0NBVUl3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFPQmdOVkhROEJBZjhFQkFNQ0FRWXcKU3dZSUt3WUJCUVVIQVFFRVB6QTlNRHNHQ0NzR0FRVUZCekFDaGk5b2RIUndPaTh2WVhCd2N5NXBaR1Z1ZEhKMQpjM1F1WTI5dEwzSnZiM1J6TDJSemRISnZiM1JqWVhnekxuQTNZekFmQmdOVkhTTUVHREFXZ0JURXA3R2tleXh4Cit0dmhTNUIxLzhRVllJV0pFREJVQmdOVkhTQUVUVEJMTUFnR0JtZUJEQUVDQVRBL0Jnc3JCZ0VFQVlMZkV3RUIKQVRBd01DNEdDQ3NHQVFVRkJ3SUJGaUpvZEhSd09pOHZZM0J6TG5KdmIzUXRlREV1YkdWMGMyVnVZM0o1Y0hRdQpiM0puTUR3R0ExVWRId1ExTURNd01hQXZvQzJHSzJoMGRIQTZMeTlqY213dWFXUmxiblJ5ZFhOMExtTnZiUzlFClUxUlNUMDlVUTBGWU0wTlNUQzVqY213d0hRWURWUjBPQkJZRUZIbTBXZVo3dHVYa0FYT0FDSWpJR2xqMjZadHUKTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBS2N3QnNsbTcvRGxMUXJ0Mk01MW9HclMrbzQ0Ky95UW9ERlZEQwo1V3hDdTIrYjlMUlB3a1NJQ0hYTTZ3ZWJGR0p1ZU43c0o3bzVYUFdpb1c1V2xIQVFVN0c3NUsvUW9zTXJBZFNXCjlNVWdOVFA1MkdFMjRIR050TGkxcW9KRmxjRHlxU01vNTlhaHkyY0kycUJETEtvYmt4L0ozdldyYVYwVDlWdUcKV0NMS1RWWGtjR2R0d2xmRlJqbEJ6NHBZZzFodG1mNVg2RFlPOEE0anF2MklsOURqWEE2VVNiVzFGelhTTHI5TwpoZThZNElXUzZ3WTdiQ2tqQ1dEY1JRSk1FaGc3NmZzTzN0eEUrRmlZcnVxOVJVV2hpRjFteXY0UTZXK0N5QkZDCkRmdnA3T09HQU42ZEVPTTQrcVI5c2Rqb1NZS0VCcHNyNkd0UEFRdzRkeTc1M2VjNQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKSndJQkFBS0NBZ0VBc3Z6ZjJQeW8wRHI4RlArVjRvMEZhbHN4ZjNnYllJZlZXMmZKZW52TFRIcXE2K0s5Ckp0dFAvd1k4ZXhPd3B2V28vQ1dPNUl0NFg4U1grVWdiZURWN1g2Z2V3cElQWkZ5b2hDNjJSY0JIdkcxeFBCRFEKeE95YXJXL0IzOVhqbFhpbFZ4Uk9IZnVKYVdFaGdQTFRtK0VkWlJPcHQxUlM4Zm9UNk4zbnA1dzZnKzBaMDFicQo0RG1nYkNSanJscHloTHdZODJlckZEcmhpazRlRUpiZkEwRnZ5OE9qN1V0cGZaNzdNSUVvMUF5c3ZiSmMxY3c5Cmw0blpyaG9Xa09FVHdzcXVMNFJhb3lucDJoTG9jaFlQekw2U3A1cDUyZVpSMkhKMVVCUVJONlgvY1FiWHhRdVYKR0V3d2N1T3d2aVJSa09PV0pkOEtCd3BoemdHYXBJN1VPdFJ0QUoxQkxNUzBDVEQ4aEFmVGREMGdicUN5WUI1QQpZSWg4ZXdnTGk1NE9CcGtZWUFXRGhmUUc3MSswL3pTK3JjNldtM3dHWDhxTXNFL3hUSDl6UFRhRUpyMHUvSGtNClg3SzM0R0ZKMityM3FWb0JhZ3VZUDZ4amt5dzVmTDNwNzBmUWsxVE9Fa2J1emVSNE80a215UG5YZUVvMzY5Z00KQVZBNXMySCtQMnlHUU1rd2t3VUtHcThTT3AwdHhWZVhMRW4yNXZFWFE4OFd4S1dack5aN3JReWdrQzNrQXZacApMbDlvODJJU2J2dEkyc0VFTGxtNFFTdnd6MWd6ZlI0Z0l3ZjZiMXJsVy9XNDlwZ05uc2Yya2xXMzhObnlWRG9kClYwREVqRVpVWWVNdGlTZnhMK0lpTVBGYS9MaDkwL0R3dHh4SWpoczJ4dTNsejkvUEJXWTZYL2FhS0hjQ0F3RUEKQVFLQ0FnQjRKQkRFLzJMNDBuN2VRV2lFTnhCSmdZakovUDZ6WHJteHJ3cW9NbXdWbThrYXFJazZpYjg2ZVI4agpwZVhQUzludjFlNENMalBRWkk5MS9oYWlLNVB5YzFDaVhaUURVOGF4WXdGcDlGU3lmK3VmMjlHbVBRTGVJOFBJCjBUTC80NGxuMS9OUFlNV3RmRXNXMk9kOUhDKzA1dXZtYUsxOFN0WU9XdFRoeHBYb2M4QUFBYm1LWkdQdjhzVU8KQlJ3VlNJU2U3UmtDYlR0eXNGaXgzZk0zcGphNldVbXhRQXRCRFBPaWJTL1FsZWxsTTFIcEdEekhlUG9xU015WQoxdHVDeHJVQXBDQ0tvTm1kVFUvRk5GWEtvcWloNDZpaXdGeHpvdkJubmZDb243M0VTa21PcytXUjk2SVZuQXZJCnRXd2lpd0QvenFSV2NYdVE0YmJCZWpXdWYyUGlBOTRTVDlLbFU4azlpUDFRVDZ3VjNmcEcrdU5SQW9vSnpWOUUKSWw3ZDh2QlpiUnFONVFzSWJjd2daOVpGamI3MWlEbDFaL1kwazZtY2pRaDdyWHhhN0NlUHVKM0sxNnJkd1NpaApvZ0pwcnlBQnl3bktydnZrTitucS92eFZ3Vk54U3BYS2dvNjJtbm9qZWZ5QXBNVzhyYmsyWExTRk5tRmZwT0t2CitHVy9GelFUSzFoSkpBbTJZMlpaMk9rTnh2UjBMeTY4WVVrSW53UXNjWE5DcG5vMWx4a0lNRGZYQW1HWm9HWnQKL1YrOTlqdWpTbU5YRUZsRk0xR3NPaGlPUjV0OFZzZVFRdVRpd09lOW9pWEpmR0RUWjkyblpUOWJjSGRxeDRCbwp5dTN4d2g2c1VjSjNQcXpBT293b3hlays4M3B4NThiekJBL1RIbEIxSmtJL0xPb1FVUUtDQVFFQTRqVnhmRG9UCmlqeFhQSldYT212QmdIbEFCVno0aDZwVTlneE5ST3A3UUF2VTZKRzZoV0g2bGkrdllwZkJaUFc4YmxFcnhySVkKUFVrRjg4QVVuVmZRcnpGS0UwMkR5eWdEdjNoNlRzMDQ5ZUtJZWdrVUNoWXJWSTFsNVoybXVNNlFCWmNvWlZwbwo2T2l0cHlzdFdUNjZlL0V0OE5WanJpRUI3SW9QUmYxeVNEenlHN3ZnWUVQMWI2Y2pvZGRwTVdudVBEUjFVZGxKCjkzVWZvTXRMK1FNb3VOeW94MDBETjBiNEF5V0hqUDFvZm9UaW9oQ1lYUEVxRDhXdVlkQ3RJQWkrS01Mb0JzVloKMmQvV0NQN1FqaVNWbkJJVlNIT1VCRWRPQitOL1FwVm5GVnhSejlrM3hDa0IxeHJyNGNEQ1VwM0xjWEtDTFpuNworRkxMS1psL3ZoTlNRd0tDQVFFQXlvOWtHSTJUaFRja0tBdlIxTldKTHlxeTlvMHZZVmxHanVhU1hGVndXNjE4ClNjUTE0b3BMVjNlRXRYSkJNK05iaHA2bUlKVEtzUk1reWZCeUNtaXVtZXlLckNjWjRxbmoyUi9NNGc3SldjbDMKL3llU3dFZjJsWnZCSVVkSk5sNnQydzBIc3NLdEVWZzcrbks2d1JjdDNvbGk0dmk3UzdoUGQrNVluUENQVEdJVQpvVGQ3ZVFid0pmMjg4Qm9Rcm5XeTBRTVlnMkNZT3p6a1ZIUGVEczJONTZKcFM3cnQzVTFRVzkwd2FKZlpRT1MxCmovbFBiRDFidUpEU0Flc3pNTFpxUGk1NFM1MWVpSm9ESGNKZTlxUld4Nm45TnBpN0ZBL2ROejI2NkVCWkFpSVIKd2Z1alR4YUtwa2Y5U2RrSzdyMmtlR09YSUUwdXdlMjc5Z2VhNUdHUHZRS0NBUUFlL3R1eC9mTTNlZFVxUkFVWQp5RE1YZTRXK05tTUhrOXRZYTQ4YTVsWkZERm44RkJ2T3N3STNHZ21hSk5rbkVGVGxlTkhheEFSMlFVOURld3BZCkZQUlBUUjJ0VDIzRHBKUCs1Rzg5NVBqdEdFRkRGNE5iYm5ZNWU3WitvLzk0U3pXSXpwR0djY0QyU1F1aVlGUXkKYWxuN0thejExd2Qxa0toRzFSUUtyeE85dWp3aWVMZmgrTzNrZ3E1ck9xejdURnlNZTFPb0IzSVBLa2xQS3d3Wgo3c2pocTdxa3RIVEFXa1VaaVVidGxydCt1bzZqVGtyU1VXbEdCL3hCQXVyMS9MeXhzU05CNmtESmpkWXlIVmhPClljenVPYndZMVYxdXlLWjBoa09seC9yNy9rNW5nSWdYcE5iUHRxeWpubG9DSUFVRVlvQmI1MEdUWVNUZGFsOEsKbUhNcEFvSUJBQmtGM2JlcXhhNlBRVWd4TFpxOVJsVXRVUzVrQXBaa0VQTldTSDVmajZIRHJMYndKamYySFppUQppelJmQ084QUJ5NTZLc3VibGU2S0R1Rmpjck1XZTN0SVhWa20rMnVrMFNEaGJNNEFSWjl4NUFFQlFuKytaQmZYClJlUjJpZlROZld5eUQyRmw2enRaU3crRlhNeTlzRXp0YStuZUVFVXFYNmJSS3VFNFZudDVJbE5JSjFpc0lyNk8KdWVodlQrQTlhZm1vQ0Q4eWo1dkJ5Zk1rM1NtMit2RENmMzk3ZUNiK2hnN1RKRWZIZW04cDBjUVhhRmhXdkIzdwp4Z0Myclh3M0RLamgxTHFDbGtzSnU1alJpaW10NDRxRzFXRUpQUk1kWXBhUWFhYUhUSGVXL2RxWTIzUEp0UmNWCmpaU3gyMGZpNVk1NXZ4R2VkMGc5dGhxT2xmUGdtWUVDZ2dFQUlnbkMrWHNIeVF5TzNLUEVsaE92ZUVIN2s4S2UKTEhQVnV4WW02R0hCbFY1US9lOXdzWHBoV20wODNBdmp1clJ3QlAwSXlUS3hNYzhqaTZlbjdjMFJQRUpRNStBaQptekx4a09INkhKa3NlTVVvU3c3aHhxSGZ5RSt4RXU0aEltcXZnTVJ3UldPeFJzYm15a3o3SVBBTzJTYzRvUS9YCmxiRUlNOVcrUzBnZTYybm9taVhWc01KTWpldHBraTAvRXpmMmttQlZyUDYvdVV2bXIwaXZRZG04QlVWMlQ3NzQKdWtDd3ZTMk9MWFlNWTNTRkxjdHkxWkVXb0MrRnpNNzJFRHdQdys1OThrbWtZdmNPL2sxS0dqRFpQUDZVdFNtVQpYcmsyd0FCdU9BbmF0S3hxdXNxTnMrcjNMOEhLRnVHVm1rUnJPMFRPaGlLSkZWNUhaSFRyaGIvazZRPT0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K", + "Store": "default" + }, + { + "domain": { + "main": "bitwarden.jafner.tools" + }, + "certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdNVENDQlJtZ0F3SUJBZ0lTQkNiNUx5ZmR1eFd3ZE1wNXBnR0RrT3ZLTUEwR0NTcUdTSWIzRFFFQkN3VUEKTURJeEN6QUpCZ05WQkFZVEFsVlRNUll3RkFZRFZRUUtFdzFNWlhRbmN5QkZibU55ZVhCME1Rc3dDUVlEVlFRRApFd0pTTXpBZUZ3MHlNakF4TXpFeE9EQXhNalZhRncweU1qQTFNREV4T0RBeE1qUmFNQ0V4SHpBZEJnTlZCQU1UCkZtSnBkSGRoY21SbGJpNXFZV1p1WlhJdWRHOXZiSE13Z2dJaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQ0R3QXcKZ2dJS0FvSUNBUUNXMERnVUE1Und6U3ZOL1JrQisvTTgzekt6Q2JDMXcxVVpuQWRibnB0UFJzQmxidXluc1hsaApHdXFiUWZWOVNzSnpMSllSTzF3NHZsUW9WZGNyaXQzNHVDYnBYV2phUllCdkpNSjAySnNNTFpMdGRHV05nNmhPCklFZHZtVHVOK082L1d6ZGpkR01RRk8vM2dZdXhXNEMrMURRcFFVZUVEZFRGaHVITk9qRWVaNis2cWlZbHlBcjQKQ1cwNUlFQmhpQ3V1cjdOVUNDdVg3aUVCSUdMSnlFci9mckdPUGFZUXlGdkMrODl4ejliSFM4KzBXNzA3bHpHdgpQTzZlSzk5azRaUFUxeEZxS011WWJ3UDloS1dweVhyNllzdXQ5Q2E5Z1dNdktucDBzdXFyQmpGRzZzejErNFA5CmpsdGlXZ2tBeTlYYk8wUUh3V3JBbmplWXMvd0xIY1VvVXlpbDNRRGtwbDVVSlZoSkRELy9SaDlneXFMbUg2TnAKclJLR1pDaDZieksrbStVcllrNmxFdE41RFlpbFRkSDhrTHdvU2VRNWVGdm5WMjZ0VkdDakQvaUFvc3FzWWdzSgpyR3d0UVdQVEVkWDRSWDJSTWZBenlKWVFpeUM5QnZFUXhudGx1OFl5cTlwR3FoYWlKeTVmek1WZGVLNFIrR1BPClZxa2lZTWZiQTE0N3l4eXFjRmtHNWI2eDlwNnZTZjNERGFSTWpST2ttMVRQUm5SUHZCREtDb0ZCZzJIT0NFa2cKMW1UVFhYZlh5a0xicTQ2UkZ4NzIrSjdLaGpTKy9jQ05FTWNWZEVwaUdOcEpjcnorTUg1dzFvM3N4WFpxeVdCVAorMFJ5S3VORkZFc1dDaUYyQlhkTER2QkNrQ2xjOEJUN1RPYW5XRElUS2ppa3psak4vWTNaMlFJREFRQUJvNElDClVEQ0NBa3d3RGdZRFZSMFBBUUgvQkFRREFnV2dNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQU1CZ05WSFJNQkFmOEVBakFBTUIwR0ExVWREZ1FXQkJTYUlqVFMrVU5KYzE5ODBFTkxHWGRUeFFacApiekFmQmdOVkhTTUVHREFXZ0JRVUxyTVh0MWhXeTY1UUNVRG1INitkaXhUQ3hqQlZCZ2dyQmdFRkJRY0JBUVJKCk1FY3dJUVlJS3dZQkJRVUhNQUdHRldoMGRIQTZMeTl5TXk1dkxteGxibU55TG05eVp6QWlCZ2dyQmdFRkJRY3cKQW9ZV2FIUjBjRG92TDNJekxta3ViR1Z1WTNJdWIzSm5MekFoQmdOVkhSRUVHakFZZ2haaWFYUjNZWEprWlc0dQphbUZtYm1WeUxuUnZiMnh6TUV3R0ExVWRJQVJGTUVNd0NBWUdaNEVNQVFJQk1EY0dDeXNHQVFRQmd0OFRBUUVCCk1DZ3dKZ1lJS3dZQkJRVUhBZ0VXR21oMGRIQTZMeTlqY0hNdWJHVjBjMlZ1WTNKNWNIUXViM0puTUlJQkF3WUsKS3dZQkJBSFdlUUlFQWdTQjlBU0I4UUR2QUhVQUtYbSs4SjQ1T1NId1ZuT2ZZNlYzNWI1WGZaeGdDdmo1VFYwbQpYQ1ZkeDRRQUFBRitzWU5sOWdBQUJBTUFSakJFQWlBNzltdklXNktpYzh6eTNHci9NU2xoNVVScjdVcEwxZXQ0CmJuaU9WTDdjZVFJZ0VqNERJb0hlNWNRalJuYUhxYWh3ZktNblRmcXBlNGdrNnlIM1RyQjlkT01BZGdEZnBWNnIKYUlKUEgyeXQ3cmhmVGo1YTZzMmlFcVJxWG80N0VzQWdSRndxY3dBQUFYNnhnMmZsQUFBRUF3QkhNRVVDSVFDTwpEYzVVWGhBaUovVURWSENzaVJlcE90WkJaWkswOUdieXN6SDJWam94SFFJZ1ljMTVGVjF1bFFOSEwyTWl2a1B5CmNKRGxSaUExcEVzS1QzQjdOR2FFZVB3d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFFV2NoY2FaYXZTUG82UmgKTDYrNEYyNHFHN3AxekZmTml3eWtYeGFOUFVuZGVMTzZaVzJnbDB5VGlxUjRCSndaa3d2OXJWRWllMTNLcFB6YQpteTdFc0hiOC9sTlkweXBQVytEMmVNMmVpZTRtOXJMa004ZDUwT1QrM0s3Sk1Ya2UyVVdZenVrTWUxam1mRTc1CmpBODhoZ3pDcm5OWG1xM1VFZUtZdFYwbW1FbFo1MWF3YlErQXZIWngxVE90akI2UjNycUV6bkE0Y2V2UVdSWHgKMnUwdE52K2hGVVFWZDc4ckRBeC9oa1RvUkpaQzdSbEltNiszb1RBQWhNZ2pFRVlrUVJpc1Y4TEZMOXkzeVpJbQp6QmdjcnQxZlZiVWxHcThBaURGSEppWktFSXR6Z2pIUnR6eXk4SWFkanNjbWlKZmlTVks2TEJRREVyVlJxaDRrCldROEZaR3M9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlGRmpDQ0F2NmdBd0lCQWdJUkFKRXJDRXJQREJpblUvYldMaVduWDFvd0RRWUpLb1pJaHZjTkFRRUxCUUF3ClR6RUxNQWtHQTFVRUJoTUNWVk14S1RBbkJnTlZCQW9USUVsdWRHVnlibVYwSUZObFkzVnlhWFI1SUZKbGMyVmgKY21Ob0lFZHliM1Z3TVJVd0V3WURWUVFERXd4SlUxSkhJRkp2YjNRZ1dERXdIaGNOTWpBd09UQTBNREF3TURBdwpXaGNOTWpVd09URTFNVFl3TURBd1dqQXlNUXN3Q1FZRFZRUUdFd0pWVXpFV01CUUdBMVVFQ2hNTlRHVjBKM01nClJXNWpjbmx3ZERFTE1Ba0dBMVVFQXhNQ1VqTXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUsKQW9JQkFRQzdBaFVvelBhZ2xOTVBFdXlOVlpMRCtJTHhtYVo2UW9pblhTYXF0U3U1eFV5eHI0NXIrWFhJbzljUApSNVFVVlRWWGpKNm9vamtaOVlJOFFxbE9idlU3d3k3YmpjQ3dYUE5aT09mdHoybndXZ3NidnNDVUpDV0gramR4CnN4UG5IS3pobSsvYjVEdEZVa1dXcWNGVHpqVElVdTYxcnUyUDNtQnc0cVZVcTdadERwZWxRRFJySzlPOFp1dG0KTkh6NmE0dVBWeW1aK0RBWFhicHliL3VCeGEzU2hsZzlGOGZuQ2J2eEsvZUczTUhhY1YzVVJ1UE1yU1hCaUx4ZwpaM1Ztcy9FWTk2SmM1bFAvT29pMlI2WC9FeGpxbUFsM1A1MVQrYzhCNWZXbWNCY1VyMk9rLzVtems1M2NVNmNHCi9raUZIYUZwcmlWMXV4UE1VZ1AxN1ZHaGk5c1ZBZ01CQUFHamdnRUlNSUlCQkRBT0JnTlZIUThCQWY4RUJBTUMKQVlZd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSEF3SUdDQ3NHQVFVRkJ3TUJNQklHQTFVZEV3RUIvd1FJTUFZQgpBZjhDQVFBd0hRWURWUjBPQkJZRUZCUXVzeGUzV0ZiTHJsQUpRT1lmcjUyTEZNTEdNQjhHQTFVZEl3UVlNQmFBCkZIbTBXZVo3dHVYa0FYT0FDSWpJR2xqMjZadHVNRElHQ0NzR0FRVUZCd0VCQkNZd0pEQWlCZ2dyQmdFRkJRY3cKQW9ZV2FIUjBjRG92TDNneExta3ViR1Z1WTNJdWIzSm5MekFuQmdOVkhSOEVJREFlTUJ5Z0dxQVloaFpvZEhSdwpPaTh2ZURFdVl5NXNaVzVqY2k1dmNtY3ZNQ0lHQTFVZElBUWJNQmt3Q0FZR1o0RU1BUUlCTUEwR0N5c0dBUVFCCmd0OFRBUUVCTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDRnlrNUhQcVAzaFVTRnZOVm5lTEtZWTYxMVRSNlcKUFRObGNsUXRnYURxdyszNElMOWZ6TGR3QUxkdU8vWmVsTjdrSUorbTc0dXlBK2VpdFJZOGtjNjA3VGtDNTN3bAppa2ZtWlc0L1J2VFo4TTZVSys1VXpoSzhqQ2RMdU1HWUw2S3Z6WEdSU2dpM3lMZ2pld1F0Q1BrSVZ6NkQyUVF6CkNrY2hlQW1DSjhNcXlKdTV6bHp5Wk1qQXZubkFUNDV0UkF4ZWtyc3U5NHNRNGVnZFJDbmJXU0R0WTdraCtCSW0KbEpOWG9CMWxCTUVLSXE0UURVT1hvUmdmZnVEZ2hqZTFXckc5TUwrSGJpc3EveUZPR3dYRDlSaVg4RjZzdzZXNAphdkF1dkRzenVlNUwzc3o4NUsrRUM0WS93RlZETnZabzRUWVhhbzZaMGYrbFFLYzB0OERRWXprMU9YVnU4cnAyCnlKTUM2YWxMYkJmT0RBTFp2WUg3bjdkbzFBWmxzNEk5ZDFQNGpua0RyUW94QjNVcVE5aFZsM0xFS1E3M3hGMU8KeUs1R2hERFg4b1ZmR0tGNXUrZGVjSXNINFlhVHc3bVAzR0Z4SlNxdjMrMGxVRkpvaTVMYzVkYTE0OXA5MElkcwpoQ0V4cm9MMSs3bXJ5SWtYUGVGTTVUZ085cjBydlphQkZPdlYyejBncDM1WjArTDRXUGxidUVqTi9seFBGaW4rCkhsVWpyOGdSc0kzcWZKT1FGeS85cktJSlIwWS84T213dC84b1RXZ3kxbWRlSG1tams3ajFuWXN2QzlKU1E2WnYKTWxkbFRUS0IzemhUaFYxK1hXWXA2cmpkNUpXMXpiVldFa0xOeEU3R0pUaEVVRzNzemdCVkdQN3BTV1RVVHNxWApuTFJid0hPb3E3aEh3Zz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlGWURDQ0JFaWdBd0lCQWdJUVFBRjNJVGZVNlVLNDduYXFQR1FLdHpBTkJna3Foa2lHOXcwQkFRc0ZBREEvCk1TUXdJZ1lEVlFRS0V4dEVhV2RwZEdGc0lGTnBaMjVoZEhWeVpTQlVjblZ6ZENCRGJ5NHhGekFWQmdOVkJBTVQKRGtSVFZDQlNiMjkwSUVOQklGZ3pNQjRYRFRJeE1ERXlNREU1TVRRd00xb1hEVEkwTURrek1ERTRNVFF3TTFvdwpUekVMTUFrR0ExVUVCaE1DVlZNeEtUQW5CZ05WQkFvVElFbHVkR1Z5Ym1WMElGTmxZM1Z5YVhSNUlGSmxjMlZoCmNtTm9JRWR5YjNWd01SVXdFd1lEVlFRREV3eEpVMUpISUZKdmIzUWdXREV3Z2dJaU1BMEdDU3FHU0liM0RRRUIKQVFVQUE0SUNEd0F3Z2dJS0FvSUNBUUN0NkNSejlCUTM4NXVlSzFjb0hJZSszTGZmT0pDTWJqem1WNkI0OTNYQwpvdjcxYW03MkFFOG8yOTVvaG14RWs3YXhZLzBVRW11L0g5THFNWnNoZnRFelBMcEk5ZDE1MzdPNC94THhJWnBMCndZcUdjV2xLWm1ac2ozNDhjTCt0S1NJRzgrVEE1b0N1NGt1UHQ1bCtsQU9mMDBlWGZKbElJMVBvT0s1UENtK0QKTHRGSlY0eUFkTGJhTDlBNGpYc0RjQ0ViZGZJd1BQcVBydDNhWTZ2ckZrL0NqaEZMZnM4TDZQKzFkeTcwc250Swo0RXdTSlF4d2pRTXBvT0ZUSk93VDJlNFp2eEN6U293L2lhTmhVZDZzaHdlVTlHTng3QzdpYjF1WWdlR0pYRFI1CmJIYnZPNUJpZWViYnBKb3ZKc1hRRU9FTzN0a1FqaGI3dC9lbzk4ZmxBZ2VZanpZSWxlZmlONVlOTm5XZSt3NXkKc1IyYnZBUDVTUVhZZ2QwRnRDcldRZW1zQVhhVkNnL1kzOVc5RWg4MUx5Z1hiTktZd2FnSlpIZHVSemU2enF4WgpYbWlkZjNMV2ljVUdRU2srV1Q3ZEp2VWt5UkduV3FOTVFCOUdvWm0xcHpwUmJvWTdubjF5cHhJRmVGbnRQbEY0CkZRc0RqNDNRTHdXeVBudEtIRXR6QlJMOHh1cmdVQk44UTVOMHM4cDA1NDRmQVFqUU1OUmJjVGEwQjdyQk1EQmMKU0xlQ081aW1mV0NLb3FNcGdzeTZ2WU1FRzZLREEwR2gxZ1h4RzhLMjhLaDhoanRHcUVncWlOeDJtbmEvSDJxbApQUm1QNnpqelpON0lLdzBLS1AvMzIrSVZRdFFpMENkZDRYbitHT2R3aUsxTzV0bUxPc2JkSjFGdS83eGs5VE5EClR3SURBUUFCbzRJQlJqQ0NBVUl3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFPQmdOVkhROEJBZjhFQkFNQ0FRWXcKU3dZSUt3WUJCUVVIQVFFRVB6QTlNRHNHQ0NzR0FRVUZCekFDaGk5b2RIUndPaTh2WVhCd2N5NXBaR1Z1ZEhKMQpjM1F1WTI5dEwzSnZiM1J6TDJSemRISnZiM1JqWVhnekxuQTNZekFmQmdOVkhTTUVHREFXZ0JURXA3R2tleXh4Cit0dmhTNUIxLzhRVllJV0pFREJVQmdOVkhTQUVUVEJMTUFnR0JtZUJEQUVDQVRBL0Jnc3JCZ0VFQVlMZkV3RUIKQVRBd01DNEdDQ3NHQVFVRkJ3SUJGaUpvZEhSd09pOHZZM0J6TG5KdmIzUXRlREV1YkdWMGMyVnVZM0o1Y0hRdQpiM0puTUR3R0ExVWRId1ExTURNd01hQXZvQzJHSzJoMGRIQTZMeTlqY213dWFXUmxiblJ5ZFhOMExtTnZiUzlFClUxUlNUMDlVUTBGWU0wTlNUQzVqY213d0hRWURWUjBPQkJZRUZIbTBXZVo3dHVYa0FYT0FDSWpJR2xqMjZadHUKTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBS2N3QnNsbTcvRGxMUXJ0Mk01MW9HclMrbzQ0Ky95UW9ERlZEQwo1V3hDdTIrYjlMUlB3a1NJQ0hYTTZ3ZWJGR0p1ZU43c0o3bzVYUFdpb1c1V2xIQVFVN0c3NUsvUW9zTXJBZFNXCjlNVWdOVFA1MkdFMjRIR050TGkxcW9KRmxjRHlxU01vNTlhaHkyY0kycUJETEtvYmt4L0ozdldyYVYwVDlWdUcKV0NMS1RWWGtjR2R0d2xmRlJqbEJ6NHBZZzFodG1mNVg2RFlPOEE0anF2MklsOURqWEE2VVNiVzFGelhTTHI5TwpoZThZNElXUzZ3WTdiQ2tqQ1dEY1JRSk1FaGc3NmZzTzN0eEUrRmlZcnVxOVJVV2hpRjFteXY0UTZXK0N5QkZDCkRmdnA3T09HQU42ZEVPTTQrcVI5c2Rqb1NZS0VCcHNyNkd0UEFRdzRkeTc1M2VjNQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKS0FJQkFBS0NBZ0VBbHRBNEZBT1VjTTByemYwWkFmdnpQTjh5c3dtd3RjTlZHWndIVzU2YlQwYkFaVzdzCnA3RjVZUnJxbTBIMWZVckNjeXlXRVR0Y09MNVVLRlhYSzRyZCtMZ202VjFvMmtXQWJ5VENkTmliREMyUzdYUmwKallPb1RpQkhiNWs3amZqdXYxczNZM1JqRUJUdjk0R0xzVnVBdnRRMEtVRkhoQTNVeFliaHpUb3hIbWV2dXFvbQpKY2dLK0FsdE9TQkFZWWdycnErelZBZ3JsKzRoQVNCaXljaEsvMzZ4amoybUVNaGJ3dnZQY2MvV3gwdlB0RnU5Ck81Y3hyenp1bml2ZlpPR1QxTmNSYWlqTG1HOEQvWVNscWNsNittTExyZlFtdllGakx5cDZkTExxcXdZeFJ1ck0KOWZ1RC9ZNWJZbG9KQU12VjJ6dEVCOEZxd0o0M21MUDhDeDNGS0ZNb3BkMEE1S1plVkNWWVNRdy8vMFlmWU1xaQo1aCtqYWEwU2htUW9lbTh5dnB2bEsySk9wUkxUZVEySXBVM1IvSkM4S0Vua09YaGI1MWR1clZSZ293LzRnS0xLCnJHSUxDYXhzTFVGajB4SFYrRVY5a1RId004aVdFSXNndlFieEVNWjdaYnZHTXF2YVJxb1dvaWN1WDh6RlhYaXUKRWZoanpsYXBJbURIMndOZU84c2NxbkJaQnVXK3NmYWVyMG45d3cya1RJMFRwSnRVejBaMFQ3d1F5Z3FCUVlOaAp6Z2hKSU5aazAxMTMxOHBDMjZ1T2tSY2U5dmlleW9ZMHZ2M0FqUkRIRlhSS1loamFTWEs4L2pCK2NOYU43TVYyCmFzbGdVL3RFY2lyalJSUkxGZ29oZGdWM1N3N3dRcEFwWFBBVSswem1wMWd5RXlvNHBNNVl6ZjJOMmRrQ0F3RUEKQVFLQ0FnQjlMR2RQSFVXSWRwSmtEeTFCZTFnQTd4UktpOEZ5cTZTbmM5eWJpOEpHZzJmUENNazl5a3ovYnZMSQpXRytrUlhldFZwVmJ5aFFhT01ickQ0eGU1SXltRWxxaG1Oa2RTVkIzYjJCQzBVR25VdkEvVER1NXdFdmlSR0ptCld4MldFY1kvWnp0S3ZlQTNDZG0rYVhTRGlYb0xhVis5MmlPOGxDcEVwRllvRzZPSEkvSTBFV05HT29uNEl3TFgKeGxBSlk1YzJEempkaDBaL2ZMTkNGeHBIZG9uaEU4dlZUby9XSUNZaGFSVmQxbTdpemFhZ2dRQklSSTZGYnlKeQpmK0dUL3JMUGxvNHF1Wjk2YnJJMktuSEJ3YXZqeERwZnNHU3pKNEFtTnJDYXlhR0N2OG9Jblh2dXNvcHoya001CkY1ZWZaSStrdmNVU1Z0UCsrWk1WbUZXYStHT1pkWE9VZndub0tHWFJaMjMyYmhuR1FFZHpFb0pscDZPYUxucU0KUFZsVENuNitpTVJDczNOQTFaeFZJdHhIL0JuajdwU3RvYkdqd3lMOGpIQ3dQbU14elkwRjlLeUtFN1JoRzVoRApBZVRrbzV1Y2RjU3o2QXRGMkZyOU9QcS9JZWh3NXZqRjZYbGNvRUg5RHd5OWYzWkl1NjRBZWF5NmU5UU5IRTV5CjFLQjFmOWtzWmt3T2VFbFJzNFc1RUNmTEdhZVhsWVlhdGVhdGE3R0UzeFcybExzOVdjaWlFRjlNNW9GT3N3WmoKY3FsSzF5NDFDVFllUGJpcmFGak5paUlDcjZveFhVNFcrNnBYTXNDb1FDd2x6UTNHTS9neDJYbFczRDlSekRETgprWVlUb3dITkwyMUR4S2d0UFl4ZDRFNEZnV3JlYmwxcGl5K0FQS2tubU4vM3g1TW1qUUtDQVFFQXdveWNJeDVICnBhY1VzN2xDRW5iYUxxTS9mcFNvTlZLZ3NWanZKdzR3ajk2YzhuZy8zK2prSnVDTFRBbWpJbUIvck1tYUR6WGUKUnlmS1N0b2JZaDlyVU5jcnBWM1RHU3NoUUhiNWcySHRPWVBrc1NtUURZOG84S0VGeDFVNkFUaFlRZGRQMVdMMQpYdXBMQ1dnMEU3N0I0Szhla0hISVAzUW81TjhYKzJrSVNVT2NUdDd6TFNZaFhFTVY2YWQxY3NZRTJlZHk5dHlyCkpmbEEzRnEzN2wweGoveHlON0tsNjF6QUtGSUVGZUdGdklQZG5TUU9QblZPZHdxMDkwQTR1VHpIYzRQOVdBaGwKNkFITVEzbWxDZVNkOXAxZmRTRWh4NXdXSlNnQy81aHlMRkNhSEpPQmJzYXdFZnJVczJ2bFlVaFZxOTRqMmFxRApFaWxHSWI4NjJjNnU4d0tDQVFFQXhuTVg0bTdUM2huWnk3R1NIMUZQb0kyUjdKSmJWR0E0LzNlKy9SdTNxcmFLClY0dkVoTmNieXJaUUJkV2wwMGFhajcrbXJVRktPT2QvQTRkc0VjeVRWNVAyR1JLTXhLd1BMdHZUMmE1VzQybUgKR1V5eWRDWjMxRmZ4U2lrUU8zU2dRVkJld3crT1ZlMmxxRUFFYXc4bnhBRWtVcDIzcFNyRm9SbGpjR2o1WFVjMgowdlpTZWFORHdPWFFjU0dDejF3UjVOb1cxSHlqK0o4clZaS3U3dGJzOENFeVZLSkhaL3UvWFdEckRTWnM3eGJDCmE2NHRKNDRiV3JMWEsvdkY1enMvV3R2S0NkbU9yZHNBallPN0V2cEFEWldXMWhPSlVPRCtBY1gvekI0K3NKWjQKSTJic3p6anQxSGpkZUNnLzN1RmJBUzNtcXVqdUNUV3ptRVorN1p3L0F3S0NBUUFOUmJoMU1PQ2tiWFNkR2p0bQp0Uk1IY1gyb2JnM1hyVzVuQ3ZFdDBlc0FOYWl4WmdDOWpzN1oxQ0hNcXkrazdiNW9GRXpkVXNoNlJEMnB3NTF3Cm9VSVovc1BzZ1MwZ24yK2lUVHVTZWdETUZySm9YN1NES0V3YnRuQ0ZlOHY4UDFMT0V4bFFMbk1jNlpENjhFLzEKTk9OWEo3dEhFV3dlNEJiV0hsNHRlYW5tRGFYQlA3YUpVdnVkcHJuOCtiNnFlTlhsNDhOVkVoTGZBVlVxYzBudgpDZzZTaXg5anExMWtaQ3g3MDdTUnBaUVJHMUhvSVlpVFBEK0JJWXJjLzFXZlZZVXAzVXhRVUNwYm5KdkowcWV1CnVCa0t0UXZKR3R5S0dKenVKZittWGtrVHV0LzRxUnVBYWkraTJtRGVhTEw2WXd2dE1MZHpadzJRRko3RE9KK1UKTW1SL0FvSUJBQ3kvb3pFaUFKQmlqK1FJcElSL1YwOUMzUmJWWWRiQzQ5ZG5ieCt2OGxpQ1ZPdXN6cUdOeCt5TAo4N3Q5RTZseWtFTzkyWjNUelNMTHdLNVJDU055Vi84MWxCYlBRZ0xQTVpWRmFKMzdYQWhuc1ZrWkhGeG9tRGkvCm85OHZKMFBnNW9vVHoycDR4WVhHMHNYL3VYOVNxWXJmSHd1cUdORWJ0ZmkvdXRhTU5UNjlZalZyNmVrWDBaMWIKdFFidG9ZdVVuVXhYaVRKYzhMU05YNzRxRjF3d0JybVhJcnhHNDRjbEUxL0JEUCtvSElSRlE0MzRkcUltdnpCUwpoNGFaZldUSXpWNTFsVGRuWVc3K3BUOUQ1eGsrYU5jblZoM3J4ZGtCQXdYdldlRHpLUHUwMGw1WlJTanRFMlFICjVSakZLckhkYXlIMjhiNjBTNGkwSFUxSENEUVlPWFVDZ2dFQkFLY1BVSE85R09KaHJTSDVWYTJZQmtjRTg0M2YKWFQ2Q09leXFsbjJTNTYvSzlBNi9qTzFBT1pqNXEvdDFDSDlCRkJjcWQ4c3J1Z25PMHhINWdRekIxdEVQb3Q1eQpwSTFSSTVtWFJpN0dXZmhVTEdJQW5oRi9NdzBoN2lQZ1BSdzJQaE8wUWdDUXd2K0lwYUdqQzgrVmVERGh3NFNWCmdsN3JBemxLdUU5WjVYTVppSWlIU1hSajBsN0dzL3p5VS81TWZOQXAwdFgwSWtVcGNIN0R6V3BpWU8vQVB2OWcKYUx1V1FNVWpxbWZrRkhaellDMjlyN0t0V3JGMlNNMlZ4a1dOdmFOU1kxWHhEVXhrbzUrNXpKcytraVZHUEhDTwpJZUVtYUlXeXZpUWZ6V1ozdkdxeEp3cC9KRG5iM3hhaWxtSXh6enFPUkFFR2tWN3VucG9US3lnQitHOD0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K", + "Store": "default" + }, + { + "domain": { + "main": "uptime.jafner.tools" + }, + "certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdMVENDQlJXZ0F3SUJBZ0lTQkNFNmc1c3JNUml6NlVneEtybXFUaUdJTUEwR0NTcUdTSWIzRFFFQkN3VUEKTURJeEN6QUpCZ05WQkFZVEFsVlRNUll3RkFZRFZRUUtFdzFNWlhRbmN5QkZibU55ZVhCME1Rc3dDUVlEVlFRRApFd0pTTXpBZUZ3MHlNakF4TXpFeE9EQXhNekJhRncweU1qQTFNREV4T0RBeE1qbGFNQjR4SERBYUJnTlZCQU1UCkUzVndkR2x0WlM1cVlXWnVaWEl1ZEc5dmJITXdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDRHdBd2dnSUsKQW9JQ0FRRFVmODJiWDU5TkVxeExIT1U0V2d6Y3N2KzBQWkdLZklPTFovd2t4OC8wTm1xMDJvUDNCcndnMjdSRAoyeGw3b2JlNzl2WjNPWFFSY21JZXBPY3lqSHl0Mi9yell1RDRVTDRDamFsNHZnWGdVaXhac0hVb0pvZnFlT0JJCkozQXhRcWV2b3A0OUhOaTB6TnEvaDIrOHR6VWF2eS9uUS84RlpWelZ0MWx2akRpWHloWm1LTTRxQmJUcXl6dFUKQ2NVdU9kMm5rYXVheFNtejBoUGk0VTlEbmJoeURFRnoxUS9zR3BTSUtDOWN0bzZWUy9EQmtkRFRJTGE2eEZiZwoycThqNEtXSG5RTGZVWnV5TkdHaUQrMzQrV29VZGdvM0dSbUx5eHdjdUFGdXZsTFNxK2hhaFVDd3JWOERlS2N2CkJYU3ZaeW1VdWQyMGtQcWEyTXdmT0I0bGRnNzBVNzdaYXl1R1lwNWxpelpTTlJ1aHNtVDEvYmg1Rjh1LzczVVEKd0d3dDhsU2w3TUVGMXhtbTk1a1NuMXVpamJJbzBpaTJObEtrSFkvYWhPaGY0aVpyczVtMDAwaVhpU3hYR0wzegpSbFRONC9qU0I0dG9SeFlpNHFvWm1oY1FFdGRpOFVncmd3T1N6T1hXM2ZVc2pOTnV1Y1JiQWhuREF1TzhMOG8rCkZSNjJpa3Fkc0lxd0gwZm5YS1A5clcybzMvd2Jld0lPNUtlU3RBemxBMTgzcUhuTW5nZWtWVEowa2NrNlVnS1kKUUlBTFZSTUVVUjE3cDl3R09PcnEzcU1jM1hISTBaL3NLQy9GNzBWamZ1NExIOHRWNFp1clgyczFYN3RuT01oMgp2cjgvSmk4MG0zMFBTTXFMekkwUkpGeTVDWUxrTEtCRFlGVjl2UkY4d0p1ZWxyVXlid0lEQVFBQm80SUNUekNDCkFrc3dEZ1lEVlIwUEFRSC9CQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0QKQWpBTUJnTlZIUk1CQWY4RUFqQUFNQjBHQTFVZERnUVdCQlNla004azQ5R1U1L1hKcVgzNTcyNHg5dXRCM3pBZgpCZ05WSFNNRUdEQVdnQlFVTHJNWHQxaFd5NjVRQ1VEbUg2K2RpeFRDeGpCVkJnZ3JCZ0VGQlFjQkFRUkpNRWN3CklRWUlLd1lCQlFVSE1BR0dGV2gwZEhBNkx5OXlNeTV2TG14bGJtTnlMbTl5WnpBaUJnZ3JCZ0VGQlFjd0FvWVcKYUhSMGNEb3ZMM0l6TG1rdWJHVnVZM0l1YjNKbkx6QWVCZ05WSFJFRUZ6QVZnaE4xY0hScGJXVXVhbUZtYm1WeQpMblJ2YjJ4ek1Fd0dBMVVkSUFSRk1FTXdDQVlHWjRFTUFRSUJNRGNHQ3lzR0FRUUJndDhUQVFFQk1DZ3dKZ1lJCkt3WUJCUVVIQWdFV0dtaDBkSEE2THk5amNITXViR1YwYzJWdVkzSjVjSFF1YjNKbk1JSUJCUVlLS3dZQkJBSFcKZVFJRUFnU0I5Z1NCOHdEeEFIWUEzNlZlcTJpQ1R4OXNyZTY0WDA0K1d1ck5vaEtrYWw2T094TEFJRVJjS25NQQpBQUYrc1lONjN3QUFCQU1BUnpCRkFpQXdrTm9pbysxMlhPaUF6VkR5akdtQXVnUW5mbXdRVlJZU0Zyc3RBdUczCjV3SWhBSU82cUJ0SjNEaW52ZC90SExGVE1iMzQ4UG0zOWQ5ekNkQUl1dExKMFBqd0FIY0FScVZWNjNYNmtTQXcKdGFLSmFmVHpmUkVzUVhTKy9VbTRoYXZ5L0hEK2JVY0FBQUYrc1lON0RnQUFCQU1BU0RCR0FpRUFxWWJWMkJLZQorMmtLeG1JOHBwc1cxcE9pS29FYk55UEtHanhKLzU5OEpzVUNJUUN2SUgzOUd1UkMrdk0rbFlQTjlvSWhkVDR1ClZtTExNVm9kYkZ5ckwrQ1B0REFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBbU8vMmdLWEhTRjJMRWxTV0hmWHQKZFkzVHRwbkJOdVJGS2UvclJIRDFzVEMxd3R4OG1hYWtoRnh3ZFNxSVZxdnRLd3d4TzlEa0pWYndsdGdxSDEwMgphamtPb1BlS3hoUlYrNW9rcmluSnNETVljdWw4Sm9zR1d5R3RlNE0xdTdVTHNQMjdxTVVZZzI4ZDE5TU1ZaUQzClZ6U0RhUURJRlcxNnZtL2MxQjRPaW4rQnhxWGovK2llTXlMSEVVaHBTR2lueGNiWjY2R2M1TFU2ZkM2QXRJV1cKekQ2L3MwQVdBMlVYaThVbTRYQTRSWnZtTGdpWkU1UnBwMEVReXdLY1F2M0JMUHl3K1F1SjhqTkhxZWN5dEJMSgplaFRHblhNSUNvdHA3L0JHOHZPRkNjZnI0Q0VidUw4MmRoNkZmR0ZTaHkwSDdXazNIYVhZaklzd2o4aHJqZW4zCmVRPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZGakNDQXY2Z0F3SUJBZ0lSQUpFckNFclBEQmluVS9iV0xpV25YMW93RFFZSktvWklodmNOQVFFTEJRQXcKVHpFTE1Ba0dBMVVFQmhNQ1ZWTXhLVEFuQmdOVkJBb1RJRWx1ZEdWeWJtVjBJRk5sWTNWeWFYUjVJRkpsYzJWaApjbU5vSUVkeWIzVndNUlV3RXdZRFZRUURFd3hKVTFKSElGSnZiM1FnV0RFd0hoY05NakF3T1RBME1EQXdNREF3CldoY05NalV3T1RFMU1UWXdNREF3V2pBeU1Rc3dDUVlEVlFRR0V3SlZVekVXTUJRR0ExVUVDaE1OVEdWMEozTWcKUlc1amNubHdkREVMTUFrR0ExVUVBeE1DVWpNd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFSwpBb0lCQVFDN0FoVW96UGFnbE5NUEV1eU5WWkxEK0lMeG1hWjZRb2luWFNhcXRTdTV4VXl4cjQ1citYWElvOWNQClI1UVVWVFZYako2b29qa1o5WUk4UXFsT2J2VTd3eTdiamNDd1hQTlpPT2Z0ejJud1dnc2J2c0NVSkNXSCtqZHgKc3hQbkhLemhtKy9iNUR0RlVrV1dxY0ZUempUSVV1NjFydTJQM21CdzRxVlVxN1p0RHBlbFFEUnJLOU84WnV0bQpOSHo2YTR1UFZ5bVorREFYWGJweWIvdUJ4YTNTaGxnOUY4Zm5DYnZ4Sy9lRzNNSGFjVjNVUnVQTXJTWEJpTHhnClozVm1zL0VZOTZKYzVsUC9Pb2kyUjZYL0V4anFtQWwzUDUxVCtjOEI1ZldtY0JjVXIyT2svNW16azUzY1U2Y0cKL2tpRkhhRnByaVYxdXhQTVVnUDE3VkdoaTlzVkFnTUJBQUdqZ2dFSU1JSUJCREFPQmdOVkhROEJBZjhFQkFNQwpBWVl3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdJR0NDc0dBUVVGQndNQk1CSUdBMVVkRXdFQi93UUlNQVlCCkFmOENBUUF3SFFZRFZSME9CQllFRkJRdXN4ZTNXRmJMcmxBSlFPWWZyNTJMRk1MR01COEdBMVVkSXdRWU1CYUEKRkhtMFdlWjd0dVhrQVhPQUNJaklHbGoyNlp0dU1ESUdDQ3NHQVFVRkJ3RUJCQ1l3SkRBaUJnZ3JCZ0VGQlFjdwpBb1lXYUhSMGNEb3ZMM2d4TG1rdWJHVnVZM0l1YjNKbkx6QW5CZ05WSFI4RUlEQWVNQnlnR3FBWWhoWm9kSFJ3Ck9pOHZlREV1WXk1c1pXNWpjaTV2Y21jdk1DSUdBMVVkSUFRYk1Ca3dDQVlHWjRFTUFRSUJNQTBHQ3lzR0FRUUIKZ3Q4VEFRRUJNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUNGeWs1SFBxUDNoVVNGdk5WbmVMS1lZNjExVFI2VwpQVE5sY2xRdGdhRHF3KzM0SUw5ZnpMZHdBTGR1Ty9aZWxON2tJSittNzR1eUErZWl0Ulk4a2M2MDdUa0M1M3dsCmlrZm1aVzQvUnZUWjhNNlVLKzVVemhLOGpDZEx1TUdZTDZLdnpYR1JTZ2kzeUxnamV3UXRDUGtJVno2RDJRUXoKQ2tjaGVBbUNKOE1xeUp1NXpsenlaTWpBdm5uQVQ0NXRSQXhla3JzdTk0c1E0ZWdkUkNuYldTRHRZN2toK0JJbQpsSk5Yb0IxbEJNRUtJcTRRRFVPWG9SZ2ZmdURnaGplMVdyRzlNTCtIYmlzcS95Rk9Hd1hEOVJpWDhGNnN3Nlc0CmF2QXV2RHN6dWU1TDNzejg1SytFQzRZL3dGVkROdlpvNFRZWGFvNlowZitsUUtjMHQ4RFFZemsxT1hWdThycDIKeUpNQzZhbExiQmZPREFMWnZZSDduN2RvMUFabHM0STlkMVA0am5rRHJRb3hCM1VxUTloVmwzTEVLUTczeEYxTwp5SzVHaEREWDhvVmZHS0Y1dStkZWNJc0g0WWFUdzdtUDNHRnhKU3F2MyswbFVGSm9pNUxjNWRhMTQ5cDkwSWRzCmhDRXhyb0wxKzdtcnlJa1hQZUZNNVRnTzlyMHJ2WmFCRk92VjJ6MGdwMzVaMCtMNFdQbGJ1RWpOL2x4UEZpbisKSGxVanI4Z1JzSTNxZkpPUUZ5LzlyS0lKUjBZLzhPbXd0LzhvVFdneTFtZGVIbW1qazdqMW5Zc3ZDOUpTUTZadgpNbGRsVFRLQjN6aFRoVjErWFdZcDZyamQ1SlcxemJWV0VrTE54RTdHSlRoRVVHM3N6Z0JWR1A3cFNXVFVUc3FYCm5MUmJ3SE9vcTdoSHdnPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZZRENDQkVpZ0F3SUJBZ0lRUUFGM0lUZlU2VUs0N25hcVBHUUt0ekFOQmdrcWhraUc5dzBCQVFzRkFEQS8KTVNRd0lnWURWUVFLRXh0RWFXZHBkR0ZzSUZOcFoyNWhkSFZ5WlNCVWNuVnpkQ0JEYnk0eEZ6QVZCZ05WQkFNVApEa1JUVkNCU2IyOTBJRU5CSUZnek1CNFhEVEl4TURFeU1ERTVNVFF3TTFvWERUSTBNRGt6TURFNE1UUXdNMW93ClR6RUxNQWtHQTFVRUJoTUNWVk14S1RBbkJnTlZCQW9USUVsdWRHVnlibVYwSUZObFkzVnlhWFI1SUZKbGMyVmgKY21Ob0lFZHliM1Z3TVJVd0V3WURWUVFERXd4SlUxSkhJRkp2YjNRZ1dERXdnZ0lpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRQ3Q2Q1J6OUJRMzg1dWVLMWNvSEllKzNMZmZPSkNNYmp6bVY2QjQ5M1hDCm92NzFhbTcyQUU4bzI5NW9obXhFazdheFkvMFVFbXUvSDlMcU1ac2hmdEV6UExwSTlkMTUzN080L3hMeElacEwKd1lxR2NXbEtabVpzajM0OGNMK3RLU0lHOCtUQTVvQ3U0a3VQdDVsK2xBT2YwMGVYZkpsSUkxUG9PSzVQQ20rRApMdEZKVjR5QWRMYmFMOUE0alhzRGNDRWJkZkl3UFBxUHJ0M2FZNnZyRmsvQ2poRkxmczhMNlArMWR5NzBzbnRLCjRFd1NKUXh3alFNcG9PRlRKT3dUMmU0WnZ4Q3pTb3cvaWFOaFVkNnNod2VVOUdOeDdDN2liMXVZZ2VHSlhEUjUKYkhidk81QmllZWJicEpvdkpzWFFFT0VPM3RrUWpoYjd0L2VvOThmbEFnZVlqellJbGVmaU41WU5ObldlK3c1eQpzUjJidkFQNVNRWFlnZDBGdENyV1FlbXNBWGFWQ2cvWTM5VzlFaDgxTHlnWGJOS1l3YWdKWkhkdVJ6ZTZ6cXhaClhtaWRmM0xXaWNVR1FTaytXVDdkSnZVa3lSR25XcU5NUUI5R29abTFwenBSYm9ZN25uMXlweElGZUZudFBsRjQKRlFzRGo0M1FMd1d5UG50S0hFdHpCUkw4eHVyZ1VCTjhRNU4wczhwMDU0NGZBUWpRTU5SYmNUYTBCN3JCTURCYwpTTGVDTzVpbWZXQ0tvcU1wZ3N5NnZZTUVHNktEQTBHaDFnWHhHOEsyOEtoOGhqdEdxRWdxaU54Mm1uYS9IMnFsClBSbVA2emp6Wk43SUt3MEtLUC8zMitJVlF0UWkwQ2RkNFhuK0dPZHdpSzFPNXRtTE9zYmRKMUZ1Lzd4azlUTkQKVHdJREFRQUJvNElCUmpDQ0FVSXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU9CZ05WSFE4QkFmOEVCQU1DQVFZdwpTd1lJS3dZQkJRVUhBUUVFUHpBOU1Ec0dDQ3NHQVFVRkJ6QUNoaTlvZEhSd09pOHZZWEJ3Y3k1cFpHVnVkSEoxCmMzUXVZMjl0TDNKdmIzUnpMMlJ6ZEhKdmIzUmpZWGd6TG5BM1l6QWZCZ05WSFNNRUdEQVdnQlRFcDdHa2V5eHgKK3R2aFM1QjEvOFFWWUlXSkVEQlVCZ05WSFNBRVRUQkxNQWdHQm1lQkRBRUNBVEEvQmdzckJnRUVBWUxmRXdFQgpBVEF3TUM0R0NDc0dBUVVGQndJQkZpSm9kSFJ3T2k4dlkzQnpMbkp2YjNRdGVERXViR1YwYzJWdVkzSjVjSFF1CmIzSm5NRHdHQTFVZEh3UTFNRE13TWFBdm9DMkdLMmgwZEhBNkx5OWpjbXd1YVdSbGJuUnlkWE4wTG1OdmJTOUUKVTFSU1QwOVVRMEZZTTBOU1RDNWpjbXd3SFFZRFZSME9CQllFRkhtMFdlWjd0dVhrQVhPQUNJaklHbGoyNlp0dQpNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUFLY3dCc2xtNy9EbExRcnQyTTUxb0dyUytvNDQrL3lRb0RGVkRDCjVXeEN1MitiOUxSUHdrU0lDSFhNNndlYkZHSnVlTjdzSjdvNVhQV2lvVzVXbEhBUVU3Rzc1Sy9Rb3NNckFkU1cKOU1VZ05UUDUyR0UyNEhHTnRMaTFxb0pGbGNEeXFTTW81OWFoeTJjSTJxQkRMS29ia3gvSjN2V3JhVjBUOVZ1RwpXQ0xLVFZYa2NHZHR3bGZGUmpsQno0cFlnMWh0bWY1WDZEWU84QTRqcXYySWw5RGpYQTZVU2JXMUZ6WFNMcjlPCmhlOFk0SVdTNndZN2JDa2pDV0RjUlFKTUVoZzc2ZnNPM3R4RStGaVlydXE5UlVXaGlGMW15djRRNlcrQ3lCRkMKRGZ2cDdPT0dBTjZkRU9NNCtxUjlzZGpvU1lLRUJwc3I2R3RQQVF3NGR5NzUzZWM1Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", + "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKS1FJQkFBS0NBZ0VBMUgvTm0xK2ZUUktzU3h6bE9Gb00zTEwvdEQyUmlueURpMmY4Sk1mUDlEWnF0TnFECjl3YThJTnUwUTlzWmU2RzN1L2IyZHpsMEVYSmlIcVRuTW94OHJkdjY4MkxnK0ZDK0FvMnBlTDRGNEZJc1diQjEKS0NhSDZuamdTQ2R3TVVLbnI2S2VQUnpZdE16YXY0ZHZ2TGMxR3I4djUwUC9CV1ZjMWJkWmI0dzRsOG9XWmlqTwpLZ1cwNnNzN1ZBbkZMam5kcDVHcm1zVXBzOUlUNHVGUFE1MjRjZ3hCYzlVUDdCcVVpQ2d2WExhT2xVdnd3WkhRCjB5QzJ1c1JXNE5xdkkrQ2xoNTBDMzFHYnNqUmhvZy90K1BscUZIWUtOeGtaaThzY0hMZ0JicjVTMHF2b1dvVkEKc0sxZkEzaW5Md1YwcjJjcGxMbmR0SkQ2bXRqTUh6Z2VKWFlPOUZPKzJXc3JobUtlWllzMlVqVWJvYkprOWYyNAplUmZMdis5MUVNQnNMZkpVcGV6QkJkY1pwdmVaRXA5Ym9vMnlLTklvdGpaU3BCMlAyb1RvWCtJbWE3T1p0Tk5JCmw0a3NWeGk5ODBaVXplUDQwZ2VMYUVjV0l1S3FHWm9YRUJMWFl2RklLNE1Ea3N6bDF0MzFMSXpUYnJuRVd3SVoKd3dManZDL0tQaFVldG9wS25iQ0tzQjlINTF5ai9hMXRxTi84RzNzQ0R1U25rclFNNVFOZk42aDV6SjRIcEZVeQpkSkhKT2xJQ21FQ0FDMVVUQkZFZGU2ZmNCampxNnQ2akhOMXh5TkdmN0NndnhlOUZZMzd1Q3gvTFZlR2JxMTlyCk5WKzdaempJZHI2L1B5WXZOSnQ5RDBqS2k4eU5FU1JjdVFtQzVDeWdRMkJWZmIwUmZNQ2JucGExTW04Q0F3RUEKQVFLQ0FnQTVyU2FsVVdMdmpHM3ZSVHlCK3c4YXFBcjNaTzZuNC92Z1RxMEZYcVoyNW40MzhFZDVPUDYrL0dNRgpOK2JHdzdJVzlvVVcveVVkeHlvU256ZVJaTWhDZUQ2NDZOR2ZGR3MrVGl6OWRMWXJtS0lwQmRnR3VjNlNPWlRHCmdNM1cwUHlxa3p6WDRZaUFLa29GU2tGdHUxeFNraW55WDJaTWxLS0o3Mlg2L05ndmVzNXhsQW5CSmlOZ3h5Q24KUXErZVNGNTlLUENtNVhUWU5lRG41N2VYNXFzMWFWWXFsbDNuKzU3dEJkczFFdWZJWmdCR3lja2dSUFRUNUk2ZwpJVHNBUmUwbnpkb0Z1eVREVGF4aVRHaU85ME52b2twTGdpaUk1T3dRYjNFVUdkeHBDZmZhK2VnQkRFMkpwNm5ZCi9XWWFaYW5Ia0ZzNHMxRVJ6bDQ0NndaanJKT0tCcUZkbk1MQVZDc3AwRDUxc1pQMDh0M3VhemdIWlNlSXZGaXEKYm5LS2dDZDd3azBHaTltQ3RxaUNobWNzOWh0bTJ0bnBjbDFyMzVERlhtblgwM2UrQWZnQ1RnakpDanErOTVnTwowVGFPZUNhK1NyWjJacUd3bG9FY2UzZi93WXQ0eDFaODl5LzQyOW00N3dlS0lPZmM5RUxOMFI5ZExhZmVQSXVZCjNVUWhRMWRhSG5ZanE2bzgwblhQbE15U2tTTTJoZkcvazFwcmwwdzIrNnNISHRpdFdkNmhBUjRVNmpWUzVDdTAKY2JsNkJDQlZpZzh3eVU1Qm1UTXpYRERNYU1naWZyRTJjelNic2tQa1dTQXlOdGx5L05aaWxpZ1FLWU5ScmNkOQoxRlhYcHRnTTlnb3IydUNwWkRPR1A5TFh5YXduaGlreUt1RDczMEZGMlhwMS9mbTlnUUtDQVFFQTNxck5mRmlnClRxbTF5ZnlQaVYxNHdKNzFZWWtmcCtQWWpzRTgxSXQxV283UThtMElIdmR3MFRXbGMvVmlSd21LZW9MTkIzMkIKYVNaS1ZvcHQrRTZSWTlCWk9nN05venExWHFYd1hORGIwbmpFM25ndnVCMG13WXlnZ2tqaXZNR2wzUlArVXROcgpnVGkvMm80K0pyMUZsd0M2U1lGVlJHSkJ6SVJTeElpeWhoQm11eEtWaUhRMzJGOUFJeUJUUklmUGg1bGEzRnlXCkQyUXB3MFFyY0RHQzVOSXd0ZzdzbVE5TzlJMzBQdkoyd0JrM3ljT2J2dEhmdlhpMS92eXlNdjE0TXlCOGFXdzMKbmZVUlNmV254OEJSbnZmZ0k5V1hxU3pXcWd6Nk8yZjZ3bjlubC92M2Fka3Npa01BMWtFUThnSlNLeXNnVmlJUApOREo2OVI4cWtNaDVId0tDQVFFQTlFOVdSMXRDVU0rek42TUZ2RnNieDA0aExTa203eFlwRURRcGVvTzhwQzI5CnoyM3hDcjNIS0paTWJmclhJL0RMSjVHVjRURHNMTGZJZmtmNjBVU3d5QVBJeGdhZ0FQSWg4OG8wSzlBTnVCVFQKb1ZKTVdJTlVVYTFZNTUxdDJMY2ZhNW5WMWN0cEo1b2puQkFMeng0VUFjZ2xUSGZCVVE1WWlGSGZjWTY1MGdVcwpyNVJIN1FqZTA1MkpaNVpINGJmRkhNdXlTaDduNVBiUklLVXJESG9VbkRJRGl1TnVEL040Y0tWR25Lc084ak5JCngvejZjUWJGQjM2d3hEQTVJclFxd2NwZlJtZXg2UUlxVEdSa244YTNRcTE1TVM4cjByYnVRcm9yQURWTmlGeHkKWDVEMFZrV0g4a0lWalphdXd4d29ESjE4amlnTkw0TEUyWGh1WUJRTXNRS0NBUUVBcHA3bmIwSWVpMTZoWXdsMApHMVZ2czZ2L2NNSWNoeFNQaTV0OE9vdzAvOVBZOVYremNRQzJVa2N6alFjMVNIVVNROFMzU2dDWG95aDgvaTlPClJUMzl1OVEvd0pzdE5CVU5mVXJ0QjNkZTF5dDZIZ09QcWRWZWwvejBheW5CU1lBYTdzazBTYVJkVVBBM1dJT1MKYklpN2wxaDdEZUFTL3o0TGdOQVA0M05ySzdrQU5zS2NWT1NxbVdZRlo0T2I2Njg1RTM0bEtMcTdxNzdISlpCUQpkUDhIdE5TNGtMT3dSb1RYRDFkZVN2QkMvbEtnbFlHamZQSXQyK21GUHM2M1JrSzMvSUkxdHVtODRKMXZGNG9VCngvdlkxLzBpbzQ0RWxCcXljOE9NU0lIeGVqTytRRlBTKzBrQTlHRlpNZnEwaEhSS0tuVjJHQjRhaEhPMTRORTIKbCtyNy93S0NBUUJKU1A4OW1tOXpKRXJEVnNDaXRzWEhiSFZoUWFYdk5EdVBJOGFKZkxqNm1zb0VUaHR2T0d4awpqV2xSMkZ2dTZRMVh5a0VtY3ZGMW5JK2s2ZHlnSjdYTDJlN0JFRDJ3NnZFcVd5NTVNZ2piZmt2WmFZR0RUNm5jCmNsNW40LzZPY3FnWE0rZEVJYWRpZk1kUHlqUndwYm9rcXJBZGx4TERTTVZmNXdkYTNoQjVvcG03OVlQNTQ1NUwKNWtiUWJ2RVRFWGdzWWlJU1ArRVorcnZTeWhqMnZpd3Vpb1lyaEh1QWgyMUtoUm1BWjRPdFBac0llcWQ1ZmlsZQpUUytqT2ovNVhBZ3paNHhhNTBJai9rVkg4eG1JSUNqYTlJU1ZMMnc2NGlyb2swWFE0eXhseWkxNDQxZVlCWFY1ClF6K0o0SGgrQ0pVdTY1THdaYTFHNGpoQWIvTFVHVStSQW9JQkFRRFAvS3UzQnd3R2FIeG1EY3d0R2ZvZHdWVXMKWi9HMHl1bFgvVFI2U2x3TWgxdVNFSUE2bENnaFMwN1VjY1VLd0l2djJUTi9VZTEyMnNadlFSK3pwcUxONDB4dgorQjZQdFoydDJOK1FXYTVnTmlEb3dtc3VYb29pT3Z3RFFoaXdKNzVpc05BT1ZtbHZvSkVGSG5kY0dkRDhiUkRjCjcwcm1oTnlsb3FUd2VCUU9lcjdKNGtwQUY1U0w2aU9VNW55QmMvZVRZV0dPaE5QYlpLR0tHMGR3WUJJUHdXeEQKQWo5YzB3WG85R3R1cjJVTThLME5hQ2VVeUVWeVE4NTMzWFNCSHlSLzB4UXV6eFFTS0dIcVZkYUtvVVVnZTdxRgpkNnpYRnhUOHNzUllOZEljdURJWlhMemdBZDNUbU1MVnJHZjVLSjNNQmFtOCtzdEg3c29NUU5RN3QwM2oKLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K", + "Store": "default" + } + ] + } +} \ No newline at end of file diff --git a/jafner-tools/traefik/docker-compose.yml b/jafner-tools/traefik/docker-compose.yml new file mode 100644 index 0000000..2180396 --- /dev/null +++ b/jafner-tools/traefik/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3" +services: + traefik: + container_name: traefik + image: traefik:latest + restart: always + networks: + - web + ports: + - 80:80 + - 443:443 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - ./traefik.toml:/traefik.toml + - ./acme.json:/acme.json +networks: + web: + external: true diff --git a/jafner-tools/traefik/traefik.toml b/jafner-tools/traefik/traefik.toml new file mode 100644 index 0000000..d504065 --- /dev/null +++ b/jafner-tools/traefik/traefik.toml @@ -0,0 +1,18 @@ +[entryPoints] + [entryPoints.web] + address = ":80" + [entryPoints.web.http.redirections.entryPoint] + to = "websecure" + scheme = "https" + [entryPoints.websecure] + address = ":443" + +[certificatesResolvers.lets-encrypt.acme] + email = "jafner425@gmail.com" + storage = "acme.json" + caServer = "https://acme-v02.api.letsencrypt.org/directory" + [certificatesResolvers.lets-encrypt.acme.tlsChallenge] + +[providers.docker] + watch = true + network = "web" diff --git a/jafner-tools/uptime-kuma/docker-compose.yml b/jafner-tools/uptime-kuma/docker-compose.yml new file mode 100644 index 0000000..b68e6ee --- /dev/null +++ b/jafner-tools/uptime-kuma/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3.3' +services: + uptime-kuma: + image: louislam/uptime-kuma + container_name: uptime-kuma + restart: always + volumes: + - ./data:/app/data + networks: + - web + labels: + - traefik.http.routers.uptime-kuma.rule=Host(`uptime.jafner.tools`) + - traefik.http.routers.uptime-kuma.tls.certresolver=lets-encrypt +networks: + web: + external: true diff --git a/jafner-tools/vaultwarden/docker-compose.yml b/jafner-tools/vaultwarden/docker-compose.yml new file mode 100644 index 0000000..dc5a701 --- /dev/null +++ b/jafner-tools/vaultwarden/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3' +services: + vaultwarden: + image: vaultwarden/server:latest + container_name: vaultwarden + restart: unless-stopped + networks: + - web + volumes: + - ./data:/data + labels: + - traefik.http.routers.vaultwarden.rule=Host(`bitwarden.jafner.tools`) + - traefik.http.routers.vaultwarden.tls.certresolver=lets-encrypt +networks: + web: + external: true diff --git a/nas/README.md b/nas/README.md new file mode 100644 index 0000000..e69de29 diff --git a/router/README.md b/router/README.md new file mode 100644 index 0000000..e69de29 diff --git a/seedbox/README.md b/seedbox/README.md new file mode 100644 index 0000000..e69de29