summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2025-01-05 12:46:07 -0800
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2025-01-05 12:46:07 -0800
commit081978670a553835d503b53b7b91a9b2dbb77080 (patch)
tree613b1807bd89a1edb7d56084c039e811848f6c8b
parent05343066f77cdc7c2e262bfd723ce82574a0d4e1 (diff)
downloadoldinfra-081978670a553835d503b53b7b91a9b2dbb77080.tar.gz
oldinfra-081978670a553835d503b53b7b91a9b2dbb77080.zip
add whois
-rwxr-xr-xcreate_service.sh31
-rw-r--r--deploy-whois.yml4
-rw-r--r--inventory2
-rw-r--r--roles/nameservers/templates/db.simponic.xyz.j21
-rw-r--r--roles/webservers/files/ryo/http.whois.simponic.xyz.conf13
-rw-r--r--roles/webservers/files/ryo/https.whois.simponic.xyz.conf32
-rw-r--r--roles/whois/tasks/main.yml30
-rw-r--r--roles/whois/templates/docker-compose.yml.j216
8 files changed, 117 insertions, 12 deletions
diff --git a/create_service.sh b/create_service.sh
index acbdf5f..ee01e7d 100755
--- a/create_service.sh
+++ b/create_service.sh
@@ -2,18 +2,25 @@
set -e
-DNS_ENDPOINT="https://hatecomputers.club/dns"
-BIND_FILE="roles/nameservers/templates/db.simponic.xyz.j2"
-
-SERVICE_TITLE="phoneof simponic."
-SERVICE="phoneof"
-SERVICE_PORT="6363"
-SERVICE_REPO="git.simponic.xyz/simponic/$SERVICE"
-SERVICE_ORIGIN="git@git.simponic.xyz:simponic/$SERVICE"
-INTERNAL="no"
-SERVICE_HOST="ryo"
-PACKAGE_PATH="$HOME/git/simponic/$SERVICE"
-HATECOMPUTERS_API_KEY="$(pbpaste)"
+prompt_with_default() {
+ local prompt_message="$1"
+ local default_value="$2"
+ read -p "$prompt_message [$default_value]: " input
+ echo "${input:-$default_value}"
+}
+
+DNS_ENDPOINT=$(prompt_with_default "Enter DNS endpoint" "https://hatecomputers.club/dns")
+BIND_FILE=$(prompt_with_default "Enter bind file path" "roles/nameservers/templates/db.simponic.xyz.j2")
+
+SERVICE_TITLE=$(prompt_with_default "Enter service title" "phoneof simponic.")
+SERVICE=$(prompt_with_default "Enter service name" "phoneof")
+SERVICE_PORT=$(prompt_with_default "Enter service port" "6363")
+SERVICE_REPO=$(prompt_with_default "Enter service repository URL" "git.simponic.xyz/simponic/$SERVICE")
+SERVICE_ORIGIN=$(prompt_with_default "Enter service origin URL" "git@git.simponic.xyz:simponic/$SERVICE")
+INTERNAL=$(prompt_with_default "Is the service internal? (yes/no)" "no")
+SERVICE_HOST=$(prompt_with_default "Enter service host" "ryo")
+PACKAGE_PATH=$(prompt_with_default "Enter package path" "$HOME/git/simponic/$SERVICE")
+HATECOMPUTERS_API_KEY=$(prompt_with_default "Enter hatecomputers API key (paste from clipboard)" "$(pbpaste)")
function render_template() {
diff --git a/deploy-whois.yml b/deploy-whois.yml
new file mode 100644
index 0000000..35df72b
--- /dev/null
+++ b/deploy-whois.yml
@@ -0,0 +1,4 @@
+- name: deploy whois
+ hosts: whois
+ roles:
+ - whois
diff --git a/inventory b/inventory
index 5bdcaa8..6182f0a 100644
--- a/inventory
+++ b/inventory
@@ -91,4 +91,6 @@ raspberrypi ansible_user=root ansible_connection=ssh
ryo ansible_user=root ansible_connection=ssh
[something]
+ryo ansible_user=root ansible_connection=ssh
+[whois]
ryo ansible_user=root ansible_connection=ssh \ No newline at end of file
diff --git a/roles/nameservers/templates/db.simponic.xyz.j2 b/roles/nameservers/templates/db.simponic.xyz.j2
index 2fba45f..fcec85d 100644
--- a/roles/nameservers/templates/db.simponic.xyz.j2
+++ b/roles/nameservers/templates/db.simponic.xyz.j2
@@ -27,6 +27,7 @@ simponic.xyz. 1 IN A 23.95.214.176
chesshbot.simponic.xyz. 1 IN A 129.123.76.14
;; CNAME Records
+whois.simponic.xyz. 43200 IN CNAME ryo.simponic.xyz.
something.simponic.xyz. 43200 IN CNAME ryo.simponic.xyz.
phoneof.simponic.xyz. 43200 IN CNAME ryo.simponic.xyz.
secure.tunnel.simponic.xyz. 1 IN CNAME simponic.xyz.
diff --git a/roles/webservers/files/ryo/http.whois.simponic.xyz.conf b/roles/webservers/files/ryo/http.whois.simponic.xyz.conf
new file mode 100644
index 0000000..7dfc7c8
--- /dev/null
+++ b/roles/webservers/files/ryo/http.whois.simponic.xyz.conf
@@ -0,0 +1,13 @@
+server {
+ listen 80;
+ server_name whois.simponic.xyz;
+
+ location /.well-known/acme-challenge {
+ root /var/www/letsencrypt;
+ try_files $uri $uri/ =404;
+ }
+
+ location / {
+ rewrite ^ https://whois.simponic.xyz$request_uri? permanent;
+ }
+}
diff --git a/roles/webservers/files/ryo/https.whois.simponic.xyz.conf b/roles/webservers/files/ryo/https.whois.simponic.xyz.conf
new file mode 100644
index 0000000..9f9a3c1
--- /dev/null
+++ b/roles/webservers/files/ryo/https.whois.simponic.xyz.conf
@@ -0,0 +1,32 @@
+server {
+ listen 443 ssl;
+ server_name whois.simponic.xyz;
+
+ ssl_certificate /etc/letsencrypt/live/whois.simponic.xyz/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/whois.simponic.xyz/privkey.pem;
+ ssl_trusted_certificate /etc/letsencrypt/live/whois.simponic.xyz/fullchain.pem;
+
+ ssl_session_cache shared:SSL:50m;
+ ssl_session_timeout 5m;
+ ssl_stapling on;
+ ssl_stapling_verify on;
+
+ ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+ ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
+
+ ssl_dhparam /etc/nginx/dhparams.pem;
+ ssl_prefer_server_ciphers on;
+
+ location / {
+ proxy_pass http://127.0.0.1:8466;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_set_header Host $server_name;
+ proxy_buffering off;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
+ add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
+ }
+}
diff --git a/roles/whois/tasks/main.yml b/roles/whois/tasks/main.yml
new file mode 100644
index 0000000..7b5923e
--- /dev/null
+++ b/roles/whois/tasks/main.yml
@@ -0,0 +1,30 @@
+---
+- name: ensure whois docker/compose exist
+ file:
+ path: /etc/docker/compose/whois
+ state: directory
+ owner: root
+ group: root
+ mode: 0700
+
+- name: ensure whois db exist
+ file:
+ path: /etc/docker/compose/whois/db
+ state: directory
+ owner: root
+ group: root
+ mode: 0777
+
+- name: build whois docker-compose.yml.j2
+ template:
+ src: ../templates/docker-compose.yml.j2
+ dest: /etc/docker/compose/whois/docker-compose.yml
+ owner: root
+ group: root
+ mode: u=rw,g=r,o=r
+
+- name: daemon-reload and enable whois
+ ansible.builtin.systemd_service:
+ state: restarted
+ enabled: true
+ name: docker-compose@whois
diff --git a/roles/whois/templates/docker-compose.yml.j2 b/roles/whois/templates/docker-compose.yml.j2
new file mode 100644
index 0000000..4832672
--- /dev/null
+++ b/roles/whois/templates/docker-compose.yml.j2
@@ -0,0 +1,16 @@
+version: "3"
+
+services:
+ api:
+ restart: always
+ image: git.simponic.xyz/simponic/whois
+ healthcheck:
+ test: ["CMD", "wget", "--spider", "http://localhost:8080/api/health"]
+ interval: 5s
+ timeout: 10s
+ retries: 5
+ env_file: .env
+ volumes:
+ - ./db:/app/db
+ ports:
+ - "127.0.0.1:8466:8080"