From 2c998a494f8b14aeaff67994a9090ae385356336 Mon Sep 17 00:00:00 2001 From: tolerryan <105945216+tolerryan@users.noreply.github.com> Date: Thu, 4 Dec 2025 09:56:54 -0600 Subject: [PATCH] tweak nas hardware config, first owncloud upload --- nas.tf | 2 +- owncloud.tf | 40 +++++++++++ roles/ind/owncloud/docker-compose.env | 1 + roles/ind/owncloud/docker-compose.yml | 52 ++++++++++++++ roles/ind/owncloud/owncloud-install.yml | 92 +++++++++++++++++++++++++ 5 files changed, 186 insertions(+), 1 deletion(-) create mode 100644 owncloud.tf create mode 100644 roles/ind/owncloud/docker-compose.env create mode 100644 roles/ind/owncloud/docker-compose.yml create mode 100644 roles/ind/owncloud/owncloud-install.yml diff --git a/nas.tf b/nas.tf index 67bf66a..236f71f 100644 --- a/nas.tf +++ b/nas.tf @@ -62,7 +62,7 @@ resource "proxmox_vm_qemu" "nas" { replicate = true serial = null size = "42G" - storage = "local-lvm" + storage = "watari" wwn = null } } diff --git a/owncloud.tf b/owncloud.tf new file mode 100644 index 0000000..1afa408 --- /dev/null +++ b/owncloud.tf @@ -0,0 +1,40 @@ +resource "proxmox_lxc" "owncloud" { + target_node = "ryuk2" + hostname = "owncloud" + vmid = 231 + ostemplate = "cephfs:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst" + password = "terraform" + unprivileged = true + cores = 6 + memory = 6096 + swap = 1024 + start = true + tags = "terraform;deb13" + nameserver = "192.168.0.224" + ssh_public_keys = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINFw70PrMsilcsqCrwW1I6PAt3anQbhmVg+t/HUfomug ryan@mxDesktop" + + features { + nesting = true + } + + rootfs { + storage = "local-lvm" + size = "128G" + } + + network { + name = "eth0" + bridge = "vmbr0" + ip = "192.168.0.70/24" + gw = "192.168.0.1" + + } + + provisioner "local-exec" { + command = "./.ansible.d/setup.sh $IP" + environment = { + IP = "192.168.0.70" + } + } + +} diff --git a/roles/ind/owncloud/docker-compose.env b/roles/ind/owncloud/docker-compose.env new file mode 100644 index 0000000..8e6983d --- /dev/null +++ b/roles/ind/owncloud/docker-compose.env @@ -0,0 +1 @@ +OWNCLOUD_TRUSTED_DOMAINS=localhost,nginx-server \ No newline at end of file diff --git a/roles/ind/owncloud/docker-compose.yml b/roles/ind/owncloud/docker-compose.yml new file mode 100644 index 0000000..bd28fd7 --- /dev/null +++ b/roles/ind/owncloud/docker-compose.yml @@ -0,0 +1,52 @@ +services: + app: + container_name: app-server + image: owncloud/server + stdin_open: true + tty: true + restart: always + expose: + - '80' + - '8080' + networks: + - onlyoffice + volumes: + - ./onlyoffice:/tmp/onlyoffice + - ./run.sh:/run.sh + command: bash /run.sh + onlyoffice-document-server: + container_name: onlyoffice-document-server + image: onlyoffice/documentserver:latest + stdin_open: true + tty: true + restart: always + networks: + - onlyoffice + environment: + - JWT_SECRET=secret + expose: + - '80' + - '443' + volumes: + - document_data:/var/www/onlyoffice/Data + - document_log:/var/log/onlyoffice + nginx: + container_name: nginx-server + image: nginx + stdin_open: true + tty: true + restart: always + ports: + - 80:80 + - 443:443 + networks: + - onlyoffice + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf +networks: + onlyoffice: + driver: 'bridge' +volumes: + document_data: + document_log: + mysql_data: \ No newline at end of file diff --git a/roles/ind/owncloud/owncloud-install.yml b/roles/ind/owncloud/owncloud-install.yml new file mode 100644 index 0000000..805084d --- /dev/null +++ b/roles/ind/owncloud/owncloud-install.yml @@ -0,0 +1,92 @@ +--- +- hosts: all + become: yes + remote_user: ansible + gather_facts: true + + vars: + + tasks: + - name: set-debcache.yml - Setup apt proxy debcache + import_tasks: ../../lib/set-debcache.yml + + - name: Upgrade-packages.yml - update packages + import_tasks: ../../lib/upgrade-packages.yml + + - name: Install-docker.yml - setting up docker + import_tasks: ../../lib/install-docker.yml + + - name: Setup-netbird.yml - setting up netbird mesh vpn + import_tasks: ../../lib/setup-netbird.yml + + - name: setup-restic.yml - setup restic + import_tasks: ../../lib/setup-restic.yml + + - name: Install Python Packages + apt: + name: + - python3-full + - python3-pip + state: present + update_cache: yes + + - name: Setup Service + copy: + dest: /etc/systemd/system/owncloud.service + content: | + [Unit] + Description=Docker Compose service + Requires=docker.service + After=docker.service + + [Service] + Type=oneshot + RemainAfterExit=yes + WorkingDirectory=/home/docker + ExecStart=/usr/bin/docker compose --env-file ./docker-compose.env -f docker-compose.yml up -d + ExecStop=/usr/bin/docker compose --env-file ./docker-compose.env -f docker-compose.yml down + + [Install] + WantedBy=multi-user.target + owner: root + group: root + mode: '0644' + + - name: Write docker-compose.yml + ansible.builtin.copy: + src: docker-compose.yml + dest: /home/docker/docker-compose.yml + owner: docker + group: docker + mode: u=rw,g=r,o=r + + - name: Write docker-compose.env + ansible.builtin.copy: + src: docker-compose.env + dest: /home/docker/docker-compose.env + owner: docker + group: docker + mode: u=rw,g=r,o=r + + #- name: Check if docker config directory exists + # stat: + # path: /home/docker/data + # register: data_stat + + #- name: Restore docker config Dir + # shell: | + # restic --password-file /home/restic/.resticpassword -r sftp:misamisa://home/restic/$(hostname) --target / restore latest + # args: + # chdir: /home/docker/ + # creates: /home/docker/data + # when: not data_stat.stat.exists or not data_stat.stat.isdir + + - name: Reload systemd daemon + systemd: + daemon_reload: yes + + - name: Start owncloud Service + systemd: + name: owncloud + state: started + enabled: yes \ No newline at end of file