From 99b1b78cfc00d4393c909badbaaf6ab569ce8b70 Mon Sep 17 00:00:00 2001 From: h <9pfs@amcforum.wiki> Date: Wed, 12 Mar 2025 16:27:36 -0700 Subject: [PATCH] Add initial working state --- deploy.yml | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ inventory.yml | 3 +++ vencloud.service | 15 ++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 deploy.yml create mode 100644 inventory.yml create mode 100644 vencloud.service diff --git a/deploy.yml b/deploy.yml new file mode 100644 index 0000000..a5182ca --- /dev/null +++ b/deploy.yml @@ -0,0 +1,62 @@ +- name: Deploy vencloud + hosts: all + remote_user: root + tasks: + - name: Set architecture specific variables + set_fact: + arch: "{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}" + - name: Create vencloud user + ansible.builtin.user: + name: vencloud + system: true + comment: vencloud service user + shell: /usr/bin/bash + - name: Install dependencies + ansible.builtin.package: + name: sudo,git + state: present + - name: Clone vencloud repository + ansible.builtin.git: + repo: 'https://github.com/vencord/vencloud' + dest: /home/vencloud/vencloud + become: true + become_user: vencloud + - name: Download golang + ansible.builtin.get_url: + url: https://go.dev/dl/go1.24.1.linux-{{arch}}.tar.gz + dest: /home/vencloud/golang.tar.gz + checksum: sha256:cb2396bae64183cdccf81a9a6df0aea3bce9511fc21469fb89a0c00470088073 + become: true + become_user: vencloud + register: golang_download + - name: Delete old golang + ansible.builtin.file: + path: /home/vencloud/go + state: absent + when: golang_download.changed + become: true + become_user: vencloud + - name: Extract golang + ansible.builtin.unarchive: + src: /tmp/golang.tar.gz + dest: /home/vencloud + remote_src: true + when: golang_download.changed + become: true + become_user: vencloud + - name: Build vencloud + ansible.builtin.command: + cmd: /home/vencloud/go/bin/go build -o backend + chdir: /home/vencloud/vencloud + become: true + become_user: vencloud + - name: Upload systemd service file + ansible.builtin.copy: + src: vencloud.service + dest: /etc/systemd/system/vencloud.service + - name: Restart vencloud + ansible.builtin.systemd: + name: vencloud + state: restarted + enabled: true + daemon_reload: true \ No newline at end of file diff --git a/inventory.yml b/inventory.yml new file mode 100644 index 0000000..f176bf3 --- /dev/null +++ b/inventory.yml @@ -0,0 +1,3 @@ +all: + hosts: + vencloud: diff --git a/vencloud.service b/vencloud.service new file mode 100644 index 0000000..c26af2f --- /dev/null +++ b/vencloud.service @@ -0,0 +1,15 @@ +[Unit] +Description=Vencord cloud settings server +After=network-online.target +ConditionPathExists=/home/vencloud/vencloud/.env + +[Service] +ExecStart=/home/vencloud/vencloud/backend +User=vencloud +ProtectHome=read-only +ProtectSystem=strict +NoNewPrivileges=true +EnvironmentFile=/home/vencloud/vencloud/.env + +[Install] +WantedBy=multi-user.target \ No newline at end of file