Compare commits

..

250 Commits

Author SHA1 Message Date
Nemo bd95967113 upgrade miniflux and gitea 2023-11-28 10:35:39 +05:30
Nemo 3f3f0fd55c re-enable GPU on Emby 2023-10-26 13:10:47 +05:30
Nemo 1b1bbcabbc drop act-exporter
I archived the repo, and no longer maintain it. ACT changed
their portal too much for this to keep working. Further,
the ACT app/portal now provide detailed stats on internet
usage, so this is not that helpful any more.
2023-10-26 13:09:32 +05:30
Nemo dfd0f94662 fix resource limits for grafana,cadvisor 2023-10-26 13:08:14 +05:30
Nemo 09c1094fc5 upgrade mastodon 2023-10-26 13:07:56 +05:30
Nemo 29368acfed upgrade miniflux 2023-10-26 13:07:45 +05:30
Nemo e18d8b11b1 Adds home-assistant
Trying to run https://hackaday.com/2021/07/24/esp8266-adds-wifi-logging-to-ikeas-air-quality-sensor/
2023-08-03 17:00:18 +05:30
Nemo 1feaf2e4f6 Migrate Emby to the SSD, and configure backups
Note that creating the directory alone doesn't do much.
You still have to configure backups and schedule them in the UI.
2023-07-27 13:36:00 +05:30
Nemo 2c52cd0cb7 gitea/miniflux upgrades 2023-07-26 09:40:02 +05:30
Nemo b83dd37365 [radicale] switch to ssd 2023-07-10 19:59:55 +05:30
Nemo af2be53caa [navidrome] Move to ssd 2023-07-10 17:12:03 +05:30
Nemo 9e8c5710f2 upgrade mastodon and use persistent redis 2023-07-10 17:01:50 +05:30
Nemo e4858d5d05 move sonarr/radarr to ssd 2023-07-10 17:01:30 +05:30
Nemo d59512c625 HSTS Preload on tatooine.club 2023-06-22 14:24:26 +05:30
Nemo 4a4504447f upgrade miniflux 2023-06-22 13:15:17 +05:30
Nemo 9b316b036b upgrade mastodon 2023-06-22 13:15:10 +05:30
Nemo f9b52957a8 fix resolver for dns/acme 2023-06-01 14:01:12 +05:30
Nemo 9b79cab3af gitea upgrade and fixes
fixes the svg favicons, but these are not nice
2023-06-01 14:01:06 +05:30
Nemo 5bd44d411f mastodon image conflict fixes 2023-06-01 14:00:08 +05:30
Nemo 406f4557fe fix+upgrade miniflux resource limits 2023-06-01 13:59:55 +05:30
Nemo 938ed017c9 Upgrade mastodon 2023-03-11 17:19:01 +05:30
Nemo 4f2a5b2cb4 Additional Mastodon secrets 2022-12-26 13:19:00 +05:30
Nemo ecaacaf3a5 [transmission] Upgrade configuration 2022-12-26 12:51:44 +05:30
Nemo af20a4efb9 [traefik] Upgrade 1.17 conf for tatooine.club 2022-12-26 12:51:30 +05:30
Nemo 18f32691f6 [media] Upgrade subnet size 2022-12-26 12:50:54 +05:30
Nemo eb1c40df6e [kaarana] Unused, but upgraded 2022-12-26 12:50:43 +05:30
Nemo 4b6b07c09a [db] Increase connections for mastodon 2022-12-26 12:50:31 +05:30
Nemo 48b93bf25d GPU and provider upgrades.
Applied to jupyter container
2022-12-26 12:49:52 +05:30
Nemo 8a894175a9 [miniflux] Upgrade to 2.0.39 2022-12-26 12:49:23 +05:30
Nemo 30fd75ae52 [main] Mastodon added 2022-12-26 12:49:13 +05:30
Nemo 9f6048a971 [gitea] Upgrades to 1.17 2022-12-26 12:48:59 +05:30
Nemo 442ec2d5d3 [traefik] New tatooine.club keys
Had to disable redirect
2022-12-26 12:48:34 +05:30
Nemo 9f04ebe4c4 [rss-bridge] Switch to upstream
Most of my changes are merged: captnemo.in/rss/
So I can switch to tracking upstream instead
2022-12-26 12:48:03 +05:30
Nemo 587b6258bb Mastodon: Initial Configuration
This is missing some secrets, will commit those later
2022-12-26 12:47:48 +05:30
Nemo da4fc888ef [WIP] Traefik v2 migration 2022-12-26 12:46:31 +05:30
Nemo 10ba57590b Switch from latest -> image_id
former is deprecated
2022-12-26 12:46:09 +05:30
Nemo 8a0ead5bb0 [postgres] Increase memory for mastodon 2022-12-26 12:44:55 +05:30
Nemo 36996a0ace Increase network size for pg to add mastodon containers 2022-12-26 12:44:03 +05:30
Nemo 24079f41a2 Upgrade Terraform version 2022-12-26 12:43:47 +05:30
Nemo 51dd19cdc8 add prowlarr 2022-02-02 19:06:13 +05:30
Nemo 1235775ed0 upgrade gitea to 1.16 2022-02-02 19:03:28 +05:30
Nemo ffa2517903 addded kavita then removed it 2022-01-08 22:19:47 +05:30
Nemo ba763d585c minor fixes and upgrades 2022-01-08 22:19:38 +05:30
Nemo f6b1954e8f no more firefox sync, Mozilla makes this too hard 2021-10-16 11:41:30 +05:30
Nemo 137eb3469f
Terraform Upgrade to 1.x (#3)
Co-authored-by: Hashfyre <joy.bhattacherjee@gmail.com>
2021-10-15 12:54:13 +00:00
Nemo 8d7875d174 Fix radicale 2021-04-14 12:30:35 +05:30
Nemo 9273447567 increase memory for radicale 2021-04-14 12:08:31 +05:30
Nemo eae805e596 Update gitea, improve config 2021-04-14 12:08:21 +05:30
Nemo c6ebee47d7 Replace gonic with navidrome 2021-02-16 19:58:53 +05:30
Nemo 1a0021fb31 update miniflux 2021-02-16 19:58:41 +05:30
Nemo 42a264c7bd Disable SSH, upgrade gitea 2021-02-02 18:31:56 +05:30
Nemo 09baca2819 remove unused code 2021-02-02 15:14:48 +05:30
Nemo d25573f4b0 upgrade miniflux 2021-02-02 15:14:37 +05:30
Nemo 6cb2ffa736 Security note about docker socket mount 2021-02-02 14:07:15 +05:30
Nemo d90a67539f Remove heimdall 2021-02-02 13:58:10 +05:30
Nemo a532831de9 remove abstruse 2021-02-02 13:52:51 +05:30
Nemo 2d2348f34f [ubooquity] Enable autoscan 2021-01-27 13:17:53 +05:30
Nemo 114bb27349 Adds requestrr 2021-01-27 13:01:44 +05:30
Nemo add21ccdac Adds klaxon 2021-01-27 12:58:32 +05:30
Nemo c3584a8f56 Removes unused code 2021-01-27 12:55:08 +05:30
Nemo 20cd656e04 Removes mongodb, upgrades wiki 2021-01-08 00:23:33 +05:30
Nemo 373793fcb5 Setup one for audiobooks 2020-10-11 18:29:56 +05:30
Nemo 4922bd098f got gonic working 2020-10-10 19:02:50 +05:30
Nemo 735279b0c1 Cleanup and comment unused stuff 2020-07-29 22:49:35 +05:30
Nemo 86db1b2da9 upgrades+gonic 2019-12-31 21:53:39 +05:30
Nemo 1a234f5025 only run webserver for elibsrv 2019-11-04 01:51:56 +05:30
Nemo f02ee532ad mount books as read-only 2019-11-04 01:40:18 +05:30
Nemo 557a0af80d Merge branch 'master' into kaarana-wordpress 2019-10-09 04:58:13 +05:30
Nemo 2b617967a3 upgrade elibsrv 2019-10-09 04:50:09 +05:30
Nemo cce99c0b6a WIP ingress configuration
- Traefik is advertising http/2 along with TLS
  it then forwards the unencrypted h2 to the php server
  which is then giving up.

(╯°□°)╯︵ ┻━┻
2019-09-21 07:55:55 +05:30
Nemo 42ab949caf Fix wordpress port 2019-09-21 06:02:16 +05:30
Nemo d4370f2b56 kaarana.org wordpress website 2019-09-21 04:59:39 +05:30
Nemo 0633f6113f The SSH and Web servers are on different IP addresses now 2019-09-14 18:32:09 +05:30
Nemo 4336814bac Fix audioserve 2019-09-14 17:32:17 +05:30
Nemo 975c48094f Upgrade redis 2019-08-12 00:27:44 +05:30
Nemo 8900b2d2be remove lychee and stringer 2019-08-12 00:21:47 +05:30
Nemo 2b2b68f722 General Updates 2019-08-11 21:40:29 +05:30
Nemo da53ac8f1a Increase memory for radicale 2019-06-28 23:52:44 +05:30
Nemo 125f4cecaf Adds stringer
- Doesn't work yet, have create an issue
2019-06-23 22:37:56 +05:30
Nemo 273b75841c Increase resources for rssbridge 2019-06-21 01:44:11 +05:30
Nemo c890430913 adds a subject prefix for gitea mails 2019-06-02 15:43:50 +05:30
Nemo 1617061f51 [gitea] New release forces oauth2 on everyone 2019-06-02 15:41:06 +05:30
Nemo 63facbde70 Remove custom dns support 2019-06-02 14:51:33 +05:30
Nemo c5677d0fa4 docker improvements got merged 2019-06-01 22:43:00 +05:30
Nemo 77afa90a64 Fix whitelist path 2019-05-28 17:08:50 +05:30
Nemo bd27db6aa6 Switch to official PHP base image 2019-05-28 16:05:16 +05:30
Nemo ae073752a1 Fix ACT Exporter 2019-05-19 12:52:02 +05:30
Nemo b862c78ec9 General Updates 2019-05-19 12:51:53 +05:30
Nemo c066e62ee0 Fix radicale 2019-05-16 16:07:01 +05:30
Nemo c152ec65df Adds elibsrv Docker Container 2019-05-12 09:01:46 +05:30
Nemo 4c55f5dd0f Updates gitea config for 1.8 2019-05-12 09:01:35 +05:30
Nemo d748e65a37 Block robots from scraping git.captnemo.in
- Too many requests
2019-04-27 16:33:52 +05:30
Nemo 3bc9e40b61 Get opml back 2019-04-27 16:24:48 +05:30
Nemo 1bc37d72a6 Force run stuff 2019-04-27 00:28:11 +05:30
Nemo 37bb59eda3 Run a jupyter notebook 2019-04-26 03:16:37 +05:30
Nemo 07d44ca39a Comment out unused kubernetes stuff 2019-04-26 03:16:25 +05:30
Nemo c9b9205496 Switch to stable release of nextcloud 2019-04-21 17:45:28 +05:30
Nemo 071a16dc94 Improve NextCloud Networking 2019-04-16 00:38:40 +05:30
Nemo d9ef272286 Fix Firefox Sync 2019-04-14 00:11:55 +05:30
Nemo 114487fc1e Fix pass provider issues 2019-04-13 03:01:36 +05:30
Nemo c2e029fb4f Adds audioserve 2019-04-02 02:55:26 +05:30
Nemo 0ce0753d5f turn off dnscrypt-proxy, client now runs on the Router 2019-03-31 17:09:43 +05:30
Nemo ff3b56231b fix rss-bridge 2019-03-26 12:48:43 +05:30
Nemo ace703fc1f Switch to pass-provider for secrets 2019-03-25 21:04:47 +05:30
Nemo d7a6d06ec2 switch to master for rss-bridge 2019-03-18 03:30:32 +05:30
Nemo 6362702c51 Fix Emby DNS to dnscrypt 2019-03-17 02:15:02 +05:30
Nemo 4fe34b183a Pihole and Dnscrypt Proxy Setup is done 2019-03-13 22:55:06 +05:30
Nemo 16a5a26123 Switch to aliases for container<>networking 2019-03-09 13:58:57 +05:30
Nemo 2b53a6a512 Add default bridge network 2019-03-09 13:54:01 +05:30
Nemo 6ec37264dc nextcloud and other minor changes 2019-03-09 13:22:54 +05:30
Nemo 995fb96611 Fixes Airsonic (mostly) 2019-02-20 00:52:09 +05:30
Nemo 435e166cd9 Adds jellyfin 🐟 2019-02-16 20:32:16 +05:30
Nemo ae985e01a7 Adds dnscrypt-proxy and pihole
pihole commented for now
2019-02-16 15:42:07 +05:30
Nemo e4b3620de5 Merge branch 'kubernetes' 2019-02-16 13:52:48 +05:30
Nemo 83eb97c8db Create etcd dns entry 2019-02-13 20:37:38 +05:30
Nemo 40b967edce Migrate to kayak 2019-02-10 23:14:21 +05:30
Nemo f85692da9e Switch to a remote state 2019-02-10 23:14:10 +05:30
Nemo 97300459fd General Updates 2019-02-03 18:39:10 +05:30
Nemo 80ce34d52f Bring up a sample pod 2019-02-02 23:21:49 +05:30
Nemo 86f2edc112 Get cluster up and running 2019-02-02 22:55:55 +05:30
Nemo 53f3c87600 some media updates 2019-01-29 00:50:00 +05:30
Nemo 23cf15b8a9 minor fixes 2019-01-28 02:01:46 +05:30
Nemo ff8efd3139 fix etcd, c-m, and node label/taints for kubelet 2019-01-27 20:07:52 +05:30
Nemo 6586244fa8 Adds etcd secrets to bootkube-start 2019-01-27 18:56:12 +05:30
Nemo 0956877ac7 asset copy fixes 2019-01-27 04:16:32 +05:30
Nemo a3dec142ad [k8s] Upload all assets using upload{} inside docker_container 2019-01-27 04:02:59 +05:30
Nemo 94f9a23b4f Remove unused variables 2019-01-27 02:49:55 +05:30
Nemo 5949a9448a [k8s] Use terraform-render-bootkube to bring up etcd
- Stop running render on the server
2019-01-27 02:49:55 +05:30
Nemo 6f6c4f974e [k8s] Run kubelet using --containerized (or maybe not) 2019-01-27 02:49:55 +05:30
Nemo 2a12c17948 Switch to official images 2019-01-27 02:49:55 +05:30
Nemo 6deddebe48 Resolve DNS issues by bypassing DNS for now 2019-01-27 02:49:55 +05:30
Nemo 524949c8e5 [k8s] Run etcd with bootkube generated certs 2019-01-27 02:49:55 +05:30
Nemo 7214355a89 [k8s] Adds kubelet, start stitching things together
Challenges:

1. etcd booting before bootkube meant I missed certs
2. etcd can run without certs, but managing docker network
   over static pod manifests might be tricky :fingers_crossed:
2019-01-27 02:49:55 +05:30
Nemo 97ef9179e4 [k8s] Make bootkube start depend on bootkube render 2019-01-27 02:49:55 +05:30
Nemo 789c9c5d3f [k8s] S01E03 Control Plane: bootkube-start 2019-01-27 02:49:55 +05:30
Nemo 86c0613d28 [k8s] S01E02 Control Plane: bootkube-render 2019-01-27 02:49:55 +05:30
Nemo 9b40bfd341 [k8s] S01E01 Control Plane: etcd
This brings up etcd using the terraform docker provider
to my Digital Ocean VPN Server. The listen address is set to the
VPN Address (10.8.0.1 = openvpn master server, also running on the
same server).

/mnt/disk is a Digital Ocean Volume attached to the instance.
2019-01-27 02:49:55 +05:30
Nemo 6eceb1d6c9 Fix memory_swap for radarr 2019-01-27 02:49:09 +05:30
Nemo 0792c36f64 Adds Firefox Sync Server 2019-01-26 18:06:18 +05:30
Nemo 4b5747abd3 Jump to 1.7 release 2019-01-25 02:08:00 +05:30
Nemo fa99d0de64 Switch to gitea master 2019-01-22 00:44:25 +05:30
Nemo 96545fe564 Upgrade miniflux and fix rss-bridge 2019-01-21 21:41:08 +05:30
Nemo 66a7e8cc46 Adds outline s3 module 2019-01-21 12:22:29 +05:30
Nemo 9aadf62b5d Try bringing up minio server 2019-01-20 04:20:43 +05:30
Nemo 54bcb8b8a9 Adds outline wiki 2019-01-20 03:46:53 +05:30
Nemo 93af050523 [docker] Dealing from the aftermath of docker provider release
- It stops adding the bridge network by default so it causes issues
2019-01-20 03:46:18 +05:30
Nemo d1d3506e7b Some minor updates for Docker provider upgrade 2019-01-18 17:15:22 +05:30
Nemo 1b61a07c55 Updates RSS Bridge 2019-01-18 00:51:36 +05:30
Nemo 245806ca8d gitea: bump to latest master to avoid a bug in 1.7rc 2019-01-14 15:31:11 +05:30
Nemo 18164d175e Disable LFS server because 1.7 breaks:
https://github.com/go-gitea/gitea/issues/5704
2019-01-12 15:16:50 +05:30
Nemo 87ce9743b3 Update gitea 2018-12-14 17:13:36 +05:30
Nemo 3b1a7a52e8 WIP: Get build working for now 2018-11-01 22:30:35 +05:30
Nemo 7d7ea22b31 Revert "lychee moved to container module"
This reverts commit 2fb18878ca.
2018-11-01 22:30:24 +05:30
Nemo c57b4b2c72 WIP: Image refactor
- docker_container cannot take upload as a parameter, leaving
  no choice but to use docker_container like a savage.
- This will take some backward refactors.
2018-10-13 20:55:20 +05:30
Nemo 809755e10d Migrate sonarr 2018-10-13 20:45:10 +05:30
Nemo 7a3f456feb Adds users 2018-10-13 20:43:25 +05:30
Nemo b1ddd5e562 Pin terraform 2018-10-13 20:08:17 +05:30
Nemo a7c9a3fe3c Upgrade gitea 2018-10-13 12:19:31 +05:30
Nemo 167e58f8de Attempt at modularizing airsonic 2018-09-16 12:23:11 +05:30
Nemo 2fb18878ca lychee moved to container module 2018-09-15 17:43:44 +05:30
Nemo aff21bf142 Fix jackett resources 2018-09-12 21:47:14 +05:30
Nemo 47a34095c6 Adds support for docker_network data source 2018-08-24 01:06:27 +05:30
Nemo 6646320d74 Adds ZNC 2018-08-23 12:02:32 +05:30
Nemo 840ce49e98 radicale: Migrate to container module 2018-08-21 08:58:10 +05:30
Nemo 2f08ef00a4 opml: Migrate to container module 2018-08-21 08:54:06 +05:30
Nemo ebe3ecbd9e rss-bridge: Migrate to container module 2018-08-21 08:46:25 +05:30
Nemo 9a5bf0a8b9 Migrate radarr to volumes 2018-08-21 08:39:00 +05:30
Nemo cbd36ca1e7 Adds support for single volumes 2018-08-21 08:30:17 +05:30
Nemo ef26f51613 Temp fix since networks aren't editable 2018-08-21 08:22:12 +05:30
Nemo e8dcd00e87 Minor fixes in container zipmapping 2018-08-07 02:55:46 +05:30
Nemo 6ef8783ba3 Really complicated terraform labelling 2018-08-07 02:12:55 +05:30
Nemo dea37a5319 Cleaner module for web configuration 2018-07-31 14:07:08 +05:30
Nemo 30853ee5aa Refactor traefik expose labels via variables
- no need to pass explicit traefik labels now
2018-07-30 12:12:58 +05:30
Nemo 1c75fe486b Moves around monicahq to new format 2018-07-28 20:26:29 +05:30
Nemo 8356ebd672 Create a new postgres module 2018-07-28 20:19:20 +05:30
Nemo 3322870a53 Creates a generic docker-container module 2018-07-28 20:03:43 +05:30
Nemo 1f545f3117 Switch to official docker image now that PR is merged 2018-07-28 10:33:48 +05:30
Nemo 40efbf6504 switches to jmalloc/echo-server for websocket support 2018-07-27 14:27:13 +05:30
Nemo 5eecce56a3 Drops tt-rss entirely 2018-07-26 01:25:11 +05:30
Nemo aa7c9047e9 Migrates monicahq to postgres 2018-07-21 13:01:20 +05:30
Nemo 97ff4a28a5 monicaHQ 2018-07-21 11:43:32 +05:30
Nemo 3ab14e79e5 Upgrades and kill mysql everywhere 2018-07-18 18:17:57 +05:30
Nemo 1353fd2c61 Switch prometheus port 2018-07-09 01:11:18 +05:30
Nemo 7e76f319a7 Starting to drop mariadb 2018-07-08 18:31:38 +05:30
Nemo 25d5a86d22 Gitea, miniflux upgrades
- Use VPN for postgres (doesn't work yet)
2018-07-04 20:05:43 +05:30
Nemo 53bfd99ad5 Adds miniflux, improves tt-rss 2018-07-01 04:17:59 +05:30
Nemo c44c8f0249 Adds postgres server and switches ttrss 2018-06-27 10:12:28 +05:30
Nemo cd33034826 Adds more RSS bridges 2018-06-27 10:12:12 +05:30
Nemo 757c52622a Adds pranav 2018-06-20 21:30:16 +05:30
Nemo 393a956fbf Disable git connectivity for wiki 2018-06-20 21:20:06 +05:30
Nemo 0dd428e4dc Tag ubooquity with the correct network for traefik 2018-06-20 21:03:23 +05:30
Nemo 453e976d85 Switches to a single traefik network
- See https://github.com/containous/traefik/issues/3429
- traefik labels are added everywhere now
2018-06-20 21:01:03 +05:30
Nemo 259aa69f8f Adds RSS-Bridge 2018-06-18 22:14:44 +05:30
Nemo 04281c5702 Changes home Domain 2018-06-18 20:32:12 +05:30
Nemo 2198faf77b gitea upgrade 2018-06-13 08:21:48 +05:30
Nemo 1487d1e129 Switch airsonic back to SQLite 2018-06-13 08:21:31 +05:30
Nemo b4447c7b8d Attach traefik to monitoring network 2018-06-04 21:54:05 +05:30
Nemo 022f8f7ce6 Improve scrape intervals 2018-06-04 21:20:47 +05:30
Nemo 3f9d4b6e9d Fix cadvisor 2018-06-04 20:15:05 +05:30
Nemo c7e2cc043f Deprecate links in monitoring module 2018-06-04 19:40:58 +05:30
Nemo d91ae4d87d Sets up ACT exporter 2018-06-04 15:30:17 +05:30
Nemo 21df4ceea6 Create and use a single traefik network everywhere 2018-06-04 13:39:55 +05:30
Nemo fb6688a3b4 Removes tinyproxy 2018-06-04 13:39:44 +05:30
Nemo 22245839ce Tinyproxy 2018-06-03 01:20:15 +05:30
Nemo ee54248ae0 Re-enable headerdebug 2018-06-03 00:32:31 +05:30
Nemo 76343d991d ACL is inbound, not outbound 2018-06-02 19:56:56 +05:30
Nemo b9965f2092 Changes for OPML-gen deployment 2018-06-01 02:25:49 +05:30
Nemo c3c5c7d0bc Move gitea.redis to its own network 2018-05-29 19:53:30 +05:30
Nemo bde455f0c3 Drop more links 2018-05-29 19:43:25 +05:30
Nemo d9a6c5fdf1 More work on networks instead of links 2018-05-29 19:36:55 +05:30
Nemo 1a714d87b2 re-arch into media directory 2018-05-29 18:56:00 +05:30
Nemo 8efb575290 Upgrades and stuff 2018-05-29 18:06:21 +05:30
Nemo 66ae57a3c5 Adds got visualizations
- https://twitter.com/tocttou/status/994942857214603265
- https://ashishchaudhary.in/game-of-thrones-visualization
2018-05-11 19:45:26 +05:30
Nemo 4c8486f6b9 switch to 10.2 series 2018-05-10 03:22:40 +05:30
Nemo 39d8d5f966 Remove mylar 2018-05-10 02:48:08 +05:30
Nemo 3a111b6c32 Switch to stable mariadb 2018-05-10 02:47:10 +05:30
Nemo abe774561e Adds accounts 2018-05-10 02:00:53 +05:30
Nemo 92083c7e8a adds people 2018-05-06 18:33:55 +05:30
Nemo b52875d3fb Adds note about requestbin 2018-05-06 03:25:41 +05:30
Nemo 0c7a43b646 Adds requestbin 2018-05-06 03:16:25 +05:30
Nemo 99beeb57e3 README update 2018-05-06 02:48:23 +05:30
Nemo 161f1991f6 force bump gitea 2018-05-06 02:41:10 +05:30
Nemo ec5ee3debc Use variable for mariadb version 2018-05-06 01:45:12 +05:30
Nemo 5f47a08bb5 Force the mysql version reported
- This is a workaround for https://github.com/terraform-providers/terraform-provider-mysql/issues/6#issuecomment-386830792
- MariaDB version responses are terrible 😠
2018-05-06 01:33:19 +05:30
Nemo 47e27ee658 fixes harman's access 2018-05-01 23:38:06 +05:30
Nemo 05c0a9e6e5 delete empty file 2018-04-23 11:09:01 +05:30
Nemo 8fe2d16fb7 standardize quotes on resource type 2018-04-22 18:09:44 +05:30
Nemo 636f3c534e lidarr on its own domain 2018-04-22 15:52:07 +05:30
Nemo 47073f4f7b Adds a new domain and KIB 2018-04-22 15:27:37 +05:30
Nemo a74efc6fba Adds gazee 2018-04-19 23:37:00 +05:30
Nemo b05bd3bd8b cleanup, downgrade traefik 2018-04-19 20:40:52 +05:30
Nemo 452c7d5b79 new user 2018-04-19 01:45:19 +05:30
Nemo c1dc9c86c7 Fix abstruse single image
- By default terraform pull all images otherwise!
2018-04-17 23:10:57 +05:30
Nemo 19dc775c5c Adds abstruse CI 2018-04-17 00:45:43 +05:30
Nemo bfe493c794 Removes daapd 2018-04-14 15:11:28 +05:30
Nemo 67620b75c1 Adds table of services 2018-04-14 15:09:54 +05:30
Nemo aa70016612 Adds note about speedtest fixes 2018-04-14 14:58:44 +05:30
Nemo 479faf6863 Switch to Percona official image for mongo rocks 2018-04-14 14:54:15 +05:30
Nemo 9b1c4d9055 Switch to speedtest:alpine
- Forked: https://github.com/stefanwalther/speedtest-exporter/pull/7
2018-04-14 14:53:58 +05:30
Nemo fd1c7f1dcc Keep gitea-redis always up 2018-04-14 13:04:14 +05:30
Nemo 1be61eadae Adds people to immutable config 2018-04-09 01:53:23 +05:30
Nemo 36c04c5ad3 Server ubooquity over multiple domains 2018-04-09 01:53:23 +05:30
Nemo ac8aa32ef3 Revert back to sqlite 2018-04-09 01:24:44 +05:30
Nemo 1f515b36f0 Revert back to sqlite 2018-04-07 17:39:23 +05:30
Nemo 5cbc438ff6 Gitea configuration update.
- Enables redis
- LFS JWT secret is now rotated
- Mail config is proper
2018-04-07 13:35:20 +05:30
Nemo 3fef15503e Expose prometheus over VPN 2018-04-05 14:46:40 +05:30
Nemo 3dae8f3a27 README update 2018-03-31 00:24:03 +05:30
Nemo a08132ca8c terraform file uploads can't be executed
- Uses a custom entrypoint instead
2018-03-30 23:48:26 +05:30
Nemo 57d175d794 Attempt at migrating to a second entrypoint 2018-03-30 10:29:26 +05:30
Nemo 8e90029a84 wildcard certs are here!!! 2018-03-28 15:45:44 +05:30
257 changed files with 3964 additions and 1950 deletions

5
.gitignore vendored
View File

@ -3,6 +3,11 @@
.terraform
*.tfstate
*.tfstate.backup
*.terraform.lock.hcl
*.out
*.backup
secrets
k8s/
k8s2/
docker/conf/wiki.yml
plan

1
.terraform-version Normal file
View File

@ -0,0 +1 @@
1.3.6

18
HACKING.md Normal file
View File

@ -0,0 +1,18 @@
# Hacking on the thing
Generate certs as per:
https://gist.github.com/captn3m0/2c2e723b2dcd5cdaad733aad12be59a2
Copy ca.pem, server-cert.pem, server-key.pem to /etc/docker/certs.
Make sure server-key.pem is 0400 in permissions.
Run `systemctl edit docker`
````
/etc/systemd/system/docker.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/certs/ca.pem --tlscert=/etc/docker/certs/server-cert.pem --tlskey=/etc/docker/certs/server-key.pem -H=0.0.0.0:2376 -H unix:///var/run/docker.sock
````

147
README.md
View File

@ -2,109 +2,106 @@
![Nebula header image](https://cdn.spacetelescope.org/archives/images/thumb700x/heic0707a.jpg)
>Where stars are born.
> Where stars are born.
Manages the local infrastructure of my home server. I'm also doing blog posts around the same:
1. [Part 1, Hardware](https://captnemo.in/blog/2017/09/17/home-server-build/)
2. [Part 2, Terraform/Docker](https://captnemo.in/blog/2017/11/09/home-server-update/)
3. [Part 3, Learnings](https://captnemo.in/blog/2017/12/18/home-server-learnings/)
4. [Part 4, Migrating from Google (and more)](https://captnemo.in/blog/2017/12/31/migrating-from-google/)
1. [Part 1, Hardware](https://captnemo.in/blog/2017/09/17/home-server-build/)
2. [Part 2, Terraform/Docker](https://captnemo.in/blog/2017/11/09/home-server-update/)
3. [Part 3, Learnings](https://captnemo.in/blog/2017/12/18/home-server-learnings/)
4. [Part 4, Migrating from Google (and more)](https://captnemo.in/blog/2017/12/31/migrating-from-google/)
5. [Part 5, Networking](https://captnemo.in/blog/2018/04/22/home-server-networking/)
6. [Part 6, RAID](https://captnemo.in/blog/2019/02/24/btrfs-raid-device-replacement-story/)
The canonical URL for this repo is https://git.captnemo.in/nemo/nebula/. A mirror is maintained on GitHub.
The canonical URL for this repo is https://git.captnemo.in/nemo/nebula/. A mirror is maintained on GitHub at <https://github.com/captn3m0/nebula>
# modules
1. docker: to actually run the services. Catch-all for miscellaneous containers
2. cloudflare: to manage the DNS.
3. mysql: to create mysql users and databases.
4. media: Media related containers (Jackett, Lidarr, Radarr, Sonarr, Daapd)
5. Monitoring: Monitoring related resources (Cadvisor, Grafana, NodeExporter, Prometheus, Transmission-Exporter)
6. Gitea: Just git.captnemo.in
7. tt-rss: Tiny-Tiny RSS Web reader
8. Radicale: CardDav/CalDav webserver
1. docker: to actually run the services. Catch-all for miscellaneous containers
2. cloudflare: to manage the DNS.
3. mysql: to create mysql users and databases.
4. media: Media related containers (Jackett, Lidarr, Radarr, Sonarr)
5. Monitoring: Monitoring related resources (Cadvisor, Grafana, NodeExporter, Prometheus, Transmission-Exporter)
6. Gitea: Just git.captnemo.in
7. miniflux: RSS Web reader
8. Radicale: CardDav/CalDav webserver
Self-learning project for terraform/docker.
# Planned
1. ~Setup DigitalOcean~
2. Add DO infrastructure via ansible
3. ~Add traefik for proper proxying~
4. Maybe add docker swarm (or k8s?) across both the servers. Might setup the k8s API on the Raspberry Pi.
1. ~Setup DigitalOcean~
2. Add DO infrastructure via ansible
3. ~Add traefik for proper proxying~
4. Maybe add docker swarm (or k8s?) across both the servers. Might setup the k8s API on the Raspberry Pi.
# Service List
Currently running the following (all links are to the `store.docker.com` links for the docker images that I'm using:
## Databases
| image | tag | module/link |
| -------------------------------- | ---------- | ---------------------------------------------------- |
| captn3m0/opml-gen | latest | https://opml.bb8.fun |
| captn3m0/rss-bridge | latest | https://github.com/RSS-Bridge/rss-bridge |
| captn3m0/speedtest-exporter | alpine | https://github.com/stefanwalther/speedtest-exporter |
| emby/embyserver | latest | https://emby.media |
| gitea/gitea | 1.5.0-rc1 | services |
| google/cadvisor | latest | monitoring |
| grafana/grafana | latest | monitoring |
| jankysolutions/requestbin | latest | tools |
| linuxserver/airsonic | latest | media |
| linuxserver/jackett | latest | media |
| linuxserver/lidarr | latest | media |
| linuxserver/lychee | latest | media |
| linuxserver/radarr | latest | media |
| linuxserver/sonarr | latest | media |
| linuxserver/transmission | latest | media |
| linuxserver/ubooquity | latest | media |
| miniflux/miniflux | 2.0.9 | tools |
| postgres | 10-alpine | database |
| prom/node-exporter | v0.15.2 | monitoring |
| prom/prometheus | latest | monitoring |
| requarks/wiki | latest | services |
| serjs/go-socks5-proxy | latest | tools |
| tocttou/gotviz | latest | na |
| tomsquest/docker-radicale | latest | services |
| traefik | 1.6-alpine | plumbing |
- [MariaDB](https://store.docker.com/images/mariadb) for a simple database backend
- [MongoRocks](https://store.docker.com/community/images/jadsonlourenco/mongo-rocks) as a mongoDB server. Uses RocksDB as the backend
## Docker Notes
## Media
- [Emby](https://store.docker.com/community/images/emby/embyserver) Media Server
- ~[CouchPotato](https://store.docker.com/community/images/linuxserver/couchpotato), auto-download movies~
- [Radarr](https://store.docker.com/community/images/linuxserver/radarr), auto-download movies
- [Sonarr](https://store.docker.com/community/images/linuxserver/sonarr), auto-download TV Shows
- [Transmission](https://store.docker.com/community/images/linuxserver/transmission), to download torrents
- [AirSonic](https://store.docker.com/community/images/airsonic/airsonic), for a music server
- [Ubooquity](https://store.docker.com/community/images/linuxserver/ubooquity), EBooks server with OPDS support
- [Lychee](https://store.docker.com/community/images/linuxserver/lychee), as a simple image-sharing/hosting service
## Plumbing
- [Traefik](https://store.docker.com/images/traefik) as a reverse-proxy server, and TLS termination
- [CAdvisor](https://store.docker.com/community/images/google/cadvisor), for basic monitoring
## Misc
- [Wiki.JS](https://store.docker.com/community/images/requarks/wiki) as a simple home-wiki
- [Radicale](https://store.docker.com/community/images/tomsquest/docker-radicale), for a CalDav/Carddav server
- [Gitea](https://store.docker.com/community/images/gitea/gitea), git server
Lots of the above images are from the excellent [LinuxServer.io](https://www.linuxserver.io), and they're doing great work :+1:
## Security Headers Note
The following security headers are applied using traefik on all traefik frontend docker backends:
- HSTS
- Redirect HTTP->HTTPS
- contentTypeNosniff: true
- browserXSSFilter: true
- XFO: Allow-From home.bb8.fun
- referrerPolicy: no-referrer
- X-Powered-By: Allomancy
- X-Server: BlackBox
- X-Clacks-Overhead "GNU Terry Pratchett" (On some domains)
~~Currently waiting on traefik 1.5.0-rc2 to fix security specific headers issue (marked as TODO above).~~ (Now resolved with new traefik release)
- Lots of the above images are from the excellent [LinuxServer.io](https://www.linuxserver.io), and they're doing great work :+1:
- Most images are running the latest beta (if available) or stable versions.
- Traefik is running with wildcard certificates.
## Upstream
Issues I've faced/reported as a result of this project:
I've been using this as a contributing opportunity and reporting/fixing issues upstream:
1. Airsonic HTTPS proxying is broken. Reported: https://github.com/airsonic/airsonic/issues/641. Turned out to be a known issue: https://github.com/airsonic/airsonic/issues/594.
2. Traefik docker backend security headers were broken with dashes. Reported at https://github.com/containous/traefik/issues/2493, and fixed by https://github.com/containous/traefik/pull/2496 :white_check_mark:
3. Headphones dies repeatedly with no error logs. Yet-to-report. (Already reported, fails due to classical artists)
4. Terraform doesn't parse mariadb version numbers. Report: https://github.com/terraform-providers/terraform-provider-mysql/issues/6. Got this fixed myself by filing a PR: https://github.com/hashicorp/go-version/pull/34. Another PR pending in the [provider](https://github.com/terraform-providers/terraform-provider-mysql/pull/27) to bump the go-version dependency. :white_check_mark:
5. `elibsrv` didn't support ebook-convert, only mobigen. PR is at https://github.com/captn3m0/elibsrv/pull/1. I've to get this merged upstream for the next release.
6. `ubooquity` docker container doesn't let you set admin password: https://github.com/linuxserver/docker-ubooquity/issues/17. (Couldn't reproduce, closed) :white_check_mark:
7. Traefik customresponseheaders can't contain colons on the docker backend: https://github.com/containous/traefik/issues/2517. Fixed with https://github.com/containous/traefik/pull/2509 :white_check_mark:
8. Traefik Security headers don't overwrite upstream headers: https://github.com/containous/traefik/issues/2618
9. Transmission exporter broke with different data types while unmarshalling JSON in go. I filed a PR https://github.com/metalmatze/transmission-exporter/pull/2
1. Airsonic HTTPS proxying is broken. Reported: https://github.com/airsonic/airsonic/issues/641. Turned out to be a known issue: https://github.com/airsonic/airsonic/issues/594. Now fixed.
2. Traefik docker backend security headers were broken with dashes. I [reported it here](https://github.com/containous/traefik/issues/2493), and fixed by https://github.com/containous/traefik/pull/2496 :white_check_mark:
3. Headphones dies repeatedly with no error logs. Yet-to-report. (Already reported, fails due to classical artists)
4. Terraform doesn't parse mariadb version numbers. Report: https://github.com/terraform-providers/terraform-provider-mysql/issues/6. Filed a [PR to fix](https://github.com/hashicorp/go-version/pull/34) and [to bump the go-version dependency](https://github.com/terraform-providers/terraform-provider-mysql/pull/27) :white_check_mark:
5. `elibsrv` didn't support ebook-convert, only mobigen. PR is at https://github.com/captn3m0/elibsrv/pull/1. Merged to `elibsrv` trunk, will be part of next release.
6. `ubooquity` docker container doesn't let you set admin password: https://github.com/linuxserver/docker-ubooquity/issues/17. (Couldn't reproduce, closed) :white_check_mark:
7. Traefik customresponseheaders can't contain colons on the docker backend: https://github.com/containous/traefik/issues/2517. Fixed with https://github.com/containous/traefik/pull/2509 :white_check_mark:
8. Traefik Security headers don't overwrite upstream headers: https://github.com/containous/traefik/issues/2618 :white_check_mark:
9. Transmission exporter broke with different data types while unmarshalling JSON in go. I filed a PR https://github.com/metalmatze/transmission-exporter/pull/2 :white_check_mark:
10. Radarr official docker container was [running a very old `mediainfo`](https://github.com/Radarr/Radarr/issues/2668#issuecomment-376310514). [Filed a fix to upgrade `mediainfo` on the official radarr image](https://github.com/linuxserver/docker-baseimage-mono/pull/3) :white_check_mark:
11. Patched the [speedtest-exporter](https://github.com/stefanwalther/speedtest-exporter/pull/7) to use Alpine and upgraded Node.JS for a smaller updated build.
12. Faced (4) above again because mariadb decided to add `:` in the version response. [Workaround was to force set `--version=10.3-mariadb`](https://git.captnemo.in/nemo/nebula/commit/5f47a08bb55eea2c708c41668657ac1efa84c72a)
13. Reported [2 critical security issues in Abstruse CI](https://github.com/bleenco/abstruse/issues/363). :white_check_mark:
14. Faced (13) above again with postgres, thankfully [someone already fixed version parsing](https://github.com/terraform-providers/terraform-provider-postgresql/pull/31) :white_check_mark:
15. RSS Bridge was missing an official Docker Image. [I Filed a PR](https://github.com/RSS-Bridge/rss-bridge/pull/720) :white_check_mark:
# Plumbing
Their is a lot of additional infrastructure that is _not-yet_ part of this repo. This includes:
1. The Digital Ocean droplet running DNSCrypt and simpleproxy to proxy over a openvpn connection to this box.
2. openbox, kodi configuration to run on boot along with the Steam Controller for the HTPC setup
3. Docker main configuration with half-baked CA setup
4. btrfs-backed subvolumes and snapshotting for most things in /mnt/xwing/ (in-progress)
5. User-creation on the main server. (I'm using a common user for media applications and specific users for other applications)
1. The Digital Ocean droplet running DNSCrypt and simpleproxy to proxy over a openvpn connection to this box.
2. openbox, kodi configuration to run on boot along with the Steam Controller for the HTPC setup
3. Docker main configuration with half-baked CA setup
4. btrfs-backed subvolumes and snapshotting for most things in /mnt/xwing/ (in-progress)
5. User-creation on the main server. (I'm using a common user for media applications and specific users for other applications)
# License

5
_scripts/ubooquity.php Normal file
View File

@ -0,0 +1,5 @@
<?php
// Generates the Ubooquity preferences.json file
$template = "ubooquity.tpl.json";

View File

@ -4,18 +4,18 @@
*/
resource "cloudflare_record" "home" {
domain = "${var.domain}"
name = "in"
value = "${var.ips["eth0"]}"
type = "A"
zone_id = var.zone_id
name = "in"
value = var.ips["eth0"]
type = "A"
}
resource "cloudflare_record" "home-wildcard" {
domain = "${var.domain}"
name = "*.in"
value = "${cloudflare_record.home.hostname}"
type = "CNAME"
ttl = 3600
zone_id = var.zone_id
name = "*.in"
value = cloudflare_record.home.hostname
type = "CNAME"
ttl = 3600
}
/**
@ -23,18 +23,42 @@ resource "cloudflare_record" "home-wildcard" {
* *.bb8.fun -> bb8.fun
*/
resource "cloudflare_record" "internet" {
domain = "${var.domain}"
name = "@"
value = "${var.ips["static"]}"
type = "A"
zone_id = var.zone_id
name = "@"
value = var.droplet_ip
type = "A"
}
resource "cloudflare_record" "internet-wildcard" {
domain = "${var.domain}"
name = "*.${var.domain}"
value = "${cloudflare_record.internet.hostname}"
type = "CNAME"
ttl = 3600
zone_id = var.zone_id
name = var.domain
value = cloudflare_record.internet.hostname
type = "CNAME"
ttl = 3600
}
resource "cloudflare_record" "dns" {
zone_id = var.zone_id
name = "dns"
value = var.ips["static"]
type = "A"
}
resource "cloudflare_record" "doh" {
zone_id = var.zone_id
name = "doh"
value = var.ips["static"]
type = "A"
}
// This ensures that _acme-challenge is not a CNAME
// alongside the above wildcard CNAME entry.
resource "cloudflare_record" "acme-no-cname-1" {
zone_id = var.zone_id
name = "_acme-challenge.${var.domain}"
type = "A"
value = "127.0.0.1"
ttl = "300"
}
/**
@ -42,18 +66,44 @@ resource "cloudflare_record" "internet-wildcard" {
* *.vpn.bb8.fun
*/
resource "cloudflare_record" "vpn" {
domain = "${var.domain}"
name = "vpn"
value = "${var.ips["tun0"]}"
type = "A"
zone_id = var.zone_id
name = "vpn"
value = var.ips["tun0"]
type = "A"
}
resource "cloudflare_record" "vpn_wildcard" {
domain = "${var.domain}"
name = "*.vpn.${var.domain}"
value = "${cloudflare_record.vpn.hostname}"
type = "CNAME"
ttl = 3600
zone_id = var.zone_id
name = "*.vpn.${var.domain}"
value = cloudflare_record.vpn.hostname
type = "CNAME"
ttl = 3600
}
/**
* vpn.bb8.fun
* *.vpn.bb8.fun
*/
resource "cloudflare_record" "dovpn" {
zone_id = var.zone_id
name = "dovpn"
value = var.ips["dovpn"]
type = "A"
}
resource "cloudflare_record" "dovpn_wildcard" {
zone_id = var.zone_id
name = "*.dovpn.${var.domain}"
value = cloudflare_record.dovpn.hostname
type = "CNAME"
ttl = 3600
}
resource "cloudflare_record" "etcd" {
zone_id = var.zone_id
name = "etcd"
value = var.ips["dovpn"]
type = "A"
}
########################
@ -61,21 +111,21 @@ resource "cloudflare_record" "vpn_wildcard" {
########################
resource "cloudflare_record" "mailgun-spf" {
domain = "${var.domain}"
name = "l"
value = "v=spf1 include:mailgun.org ~all"
type = "TXT"
zone_id = var.zone_id
name = "l"
value = "v=spf1 include:mailgun.org ~all"
type = "TXT"
}
resource "cloudflare_record" "mailgun-dkim" {
domain = "${var.domain}"
name = "k1._domainkey.l"
value = "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnbP+IQkuPkgmUhpqCKzIdDSZ0HazaMp+cdBH++LBed8oY8/jmV8BhxMp5JwyePzRTxneT8ASsRtcp7CQ3z4nMC7aFX0kH6Bnu2v+u2JWudxs8x0I02OrPbSaQ5QVQdbAaCUCEfCQ06LJsn8aqPNrRIOWEMnxln+ebFJ0wKGscFQIDAQAB"
type = "TXT"
zone_id = var.zone_id
name = "k1._domainkey.l"
value = "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnbP+IQkuPkgmUhpqCKzIdDSZ0HazaMp+cdBH++LBed8oY8/jmV8BhxMp5JwyePzRTxneT8ASsRtcp7CQ3z4nMC7aFX0kH6Bnu2v+u2JWudxs8x0I02OrPbSaQ5QVQdbAaCUCEfCQ06LJsn8aqPNrRIOWEMnxln+ebFJ0wKGscFQIDAQAB"
type = "TXT"
}
resource "cloudflare_record" "mailgun-mxa" {
domain = "${var.domain}"
zone_id = var.zone_id
name = "l"
value = "mxa.mailgun.org"
type = "MX"
@ -83,9 +133,17 @@ resource "cloudflare_record" "mailgun-mxa" {
}
resource "cloudflare_record" "mailgun-mxb" {
domain = "${var.domain}"
zone_id = var.zone_id
name = "l"
value = "mxb.mailgun.org"
type = "MX"
priority = 20
}
resource "cloudflare_record" "k8s" {
zone_id = var.zone_id
name = "k8s"
value = "10.8.0.1"
type = "A"
ttl = 3600
}

7
cloudflare/providers.tf Normal file
View File

@ -0,0 +1,7 @@
terraform {
required_providers {
cloudflare = {
source = "cloudflare/cloudflare"
}
}
}

View File

@ -1,7 +1,10 @@
variable "domain" {
type = "string"
type = string
}
variable "ips" {
type = "map"
type = map
}
variable "droplet_ip" {}
variable "zone_id" {}

11
data.tf Normal file
View File

@ -0,0 +1,11 @@
data "docker_network" "bridge" {
name = "bridge"
}
data "cloudflare_zones" "bb8" {
filter {
name = "bb8"
lookup_type = "exact"
match = "bb8.fun"
}
}

10
db/network.tf Normal file
View File

@ -0,0 +1,10 @@
resource "docker_network" "postgres" {
name = "postgres"
driver = "bridge"
internal = true
ipam_config {
subnet = "172.20.0.8/27"
gateway = "172.20.0.9"
}
}

4
db/outputs.tf Normal file
View File

@ -0,0 +1,4 @@
output "postgres-network-id" {
value = docker_network.postgres.name
}

58
db/postgres.tf Normal file
View File

@ -0,0 +1,58 @@
resource "docker_container" "postgres" {
name = "postgres"
image = docker_image.postgres.image_id
command = [
"postgres",
"-c",
"max_connections=250",
"-c",
"shared_buffers=500MB",
]
volumes {
volume_name = docker_volume.pg_data.name
container_path = "/var/lib/postgresql/data"
read_only = false
}
// This is so that other host-only services can share this
ports {
internal = 5432
external = 5432
ip = var.ips["eth0"]
}
// This is a not-so-great idea
// TODO: Figure out a better way to make terraform SSH and then connect to localhost
ports {
internal = 5432
external = 5432
ip = var.ips["tun0"]
}
memory = 2048
memory_swap = 2048
restart = "unless-stopped"
destroy_grace_seconds = 10
must_run = true
env = [
"POSTGRES_PASSWORD=${var.postgres-root-password}",
]
networks = [docker_network.postgres.id, data.docker_network.bridge.id]
}
resource "docker_image" "postgres" {
name = data.docker_registry_image.postgres.name
pull_triggers = [data.docker_registry_image.postgres.sha256_digest]
}
data "docker_registry_image" "postgres" {
name = "postgres:${var.postgres-version}"
}
data "docker_network" "bridge" {
name = "bridge"
}

10
db/providers.tf Normal file
View File

@ -0,0 +1,10 @@
terraform {
required_providers {
postgresql = {
source = "cyrilgdn/postgresql"
}
docker = {
source = "kreuzwerker/docker"
}
}
}

11
db/variables.tf Normal file
View File

@ -0,0 +1,11 @@
variable "postgres-version" {
description = "postgres version to use for fetching the docker image"
default = "14-alpine"
}
variable "ips" {
type = map(string)
}
variable "postgres-root-password" {
}

3
db/volumes.tf Normal file
View File

@ -0,0 +1,3 @@
resource "docker_volume" "pg_data" {
name = "pg_data"
}

View File

@ -1,12 +1,14 @@
resource "digitalocean_droplet" "sydney" {
image = ""
image = "??"
name = "sydney.captnemo.in"
region = "blr1"
size = "1gb"
size = "s-1vcpu-2gb"
ipv6 = true
private_networking = true
resize_disk = true
volume_ids = ["eae03502-9279-11e8-ab31-0242ac11470b"]
tags = [
"bangalore",
"proxy",
@ -14,3 +16,8 @@ resource "digitalocean_droplet" "sydney" {
"vpn",
]
}
output "droplet_ipv4" {
value = digitalocean_droplet.sydney.ipv4_address
}

View File

@ -1,38 +1,35 @@
resource "digitalocean_firewall" "web" {
name = "web-inbound"
inbound_rule = [
{
protocol = "tcp"
port_range = "80"
source_addresses = ["0.0.0.0/0", "::/0"]
},
{
protocol = "tcp"
port_range = "443"
source_addresses = ["0.0.0.0/0", "::/0"]
},
]
inbound_rule {
protocol = "tcp"
port_range = "80"
source_addresses = ["0.0.0.0/0", "::/0"]
}
inbound_rule {
protocol = "tcp"
port_range = "443"
source_addresses = ["0.0.0.0/0", "::/0"]
}
}
resource "digitalocean_firewall" "ssh" {
name = "ssh-inbound"
inbound_rule = [
{
protocol = "tcp"
port_range = "22"
source_addresses = ["0.0.0.0/0", "::/0"]
},
{
protocol = "tcp"
port_range = "222"
source_addresses = ["0.0.0.0/0", "::/0"]
},
{
protocol = "tcp"
port_range = "24"
source_addresses = ["0.0.0.0/0", "::/0"]
},
]
inbound_rule {
protocol = "tcp"
port_range = "22"
source_addresses = ["0.0.0.0/0", "::/0"]
}
inbound_rule {
protocol = "tcp"
port_range = "222"
source_addresses = ["0.0.0.0/0", "::/0"]
}
inbound_rule {
protocol = "tcp"
port_range = "24"
source_addresses = ["0.0.0.0/0", "::/0"]
}
}

View File

@ -1,4 +1,5 @@
resource "digitalocean_floating_ip" "sydney" {
droplet_id = "${digitalocean_droplet.sydney.id}"
region = "${digitalocean_droplet.sydney.region}"
droplet_id = digitalocean_droplet.sydney.id
region = digitalocean_droplet.sydney.region
}

19
digitalocean/providers.tf Normal file
View File

@ -0,0 +1,19 @@
terraform {
required_providers {
pass = {
source = "camptocamp/pass"
}
digitalocean = {
source = "digitalocean/digitalocean"
}
postgresql = {
source = "cyrilgdn/postgresql"
}
cloudflare = {
source = "cloudflare/cloudflare"
}
docker = {
source = "kreuzwerker/docker"
}
}
}

View File

@ -1 +0,0 @@
<EFBFBD>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +0,0 @@
Åù<>9<EFBFBD><39> ¦{CNŠ¶J™”¸þsÝ%”´-Ïz£ªú©|·°cå-X°¤ÐóŽ<C3B3>²)<05>Žñ¼†äæ>¨E¹$À†qªRöF(<28>7É÷Z‰>V-Ú"öƒA$<24>â
Õü÷U!9ÚË룹ÓVüu
ü.9ü
ù¹6ÇÒï¼lÛT‡3J¨œPѨ¡vÃ\ Eàî:LQÐÆ™Æ<E284A2>êÑbݹ¢»»À“-kðŒ Tc½f³!‡$÷)J¨=—%Œ>ß±

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +0,0 @@
╞В^·╥chЭНoЕ}gL_н└В1~═"⌡вяжа╕Y ч3..Э/е ╥CШ4╪&ЦI┴╫√┴hб\·{Ы ОТ╧)ЯуrщC╚∙▐▐ТП(ё'╧~Jиm╫Gт╕ъ$."э═HН©m≤г~a╕~
7N≤фТ╘⌡шКoо╚ъ=EКc▓m^А└M╢сЕ╦┌>5║вH]иь⌠и≤{ФB{З3$N─┐╘sjB}Е'аЭ╨}щ╠─║╔]9ТX├m@Tlь┌PДёБся65╙IПD °≈▄Fh²Бх:@РE| k&e²ю341F╨┴0╟Ц≥hР╞6╝ ю╤8.▓ks~╪vfV┘┼dwМVzВ`а┘G┼╜z█дннъ%1▌h▌Тt "█≈Эщгю└rы√╕хVfOУЫ▒ёи╗Ф|W еИя╡Z ∙┌д⌡i▌Z6*О.Q ХSс|В~~w┘ъ/╕Ч©тЫ ╢≥╚-у▀vеlбИО├8[YHтI;≥╛3в W|╒l\═│ЕеО╦│dр█ьЁLЦXи hЕA!ё/╢&eKкс╞$yJIля(U╞(k[ 9?+h┴jЩвцИ╪|K@I=╨N╝╓н╦°с├©рЯ╨╫╡,▄╙т©┤М,ы╥ц╨╔╘FБ╕ЖюнгБЪшZt{РрИЫ┼аlХбХyl├xBR÷╔²<БQЬъЛ\`▄▀╢4ОйЬSч~T-P▓┼R2EUhЕ┤P
?*Г?mVq9²Ол■cП▀f_ВH╙lW│≈3p│Д╒╪pH╧.ЮыР)²ёа╥Ы еГР╕M└╔ъ╣г(╙°╩VГ▄╡╕KmмZмNyдВA│оoёlЫдЁЫZщ^u╒'*hд⌠яНD Ж╥[гm≥RЛAh·@/ьv╓д}Q√▄≥·еD╜} эг╬3еdи▓к╢и&M┼s<░√Q─▄Dф©=┬qqIл|@В│≥}г·kОёf╝я▓∙ъ╠зУ∙eч▐ 1╪÷-TИ,≈TДP■╚x:~Б╨жY▐m╩`DЦa'

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More