Skip to content

Conversation

simonostendorf
Copy link
Member

closes #214

@simonostendorf simonostendorf self-assigned this Oct 17, 2025
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces automated deployment infrastructure for the Strichlistensystem application using Terraform/OpenTofu and Ansible. It replaces the previous manual VPN-based deployment approach with a comprehensive Infrastructure as Code solution targeting Hetzner Cloud.

Key changes:

  • Terraform configuration for provisioning Hetzner Cloud infrastructure (server, networking, DNS, firewall)
  • Ansible playbooks and roles for automated server configuration and application deployment
  • Updated deployment documentation with streamlined setup instructions

Reviewed Changes

Copilot reviewed 27 out of 28 changed files in this pull request and generated 18 comments.

Show a summary per file
File Description
deploy/terraform/*.tf Terraform modules for infrastructure provisioning including providers, variables, server, networking, DNS, firewall, SSH keys, and Ansible integration
deploy/terraform/this.auto.tfvars.example Example Terraform variables file template
deploy/ansible/playbook.yaml Main Ansible playbook orchestrating deployment roles
deploy/ansible/roles/*/tasks/main.yaml Ansible role task definitions for general setup, nginx, PHP, Node.js, PostgreSQL, Redis, and application deployment
deploy/ansible/roles//templates/.j2 Jinja2 templates for nginx configuration, systemd service, and Laravel environment file
deploy/ansible/vars.yaml.example Example Ansible variables file template
deploy/ansible/ansible.cfg Ansible configuration file
deploy/README.md Complete rewrite of deployment documentation
deploy/.gitignore Git ignore patterns for Terraform and Ansible artifacts
.devcontainer/devcontainer.json Added OpenTofu and Ansible tooling to development container
Files not reviewed (1)
  • deploy/terraform/.terraform.lock.hcl: Language not supported

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

when: not composer_binary.stat.exists
- name: verify composer installer
ansible.builtin.shell: |
EXPECTED_HASH="ed0feb545ba87161262f2d45a633e34f591ebb3381f2e0063c345ebea4d228dd0043083717770234ec00c5a9f9593792"
Copy link

Copilot AI Oct 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The hardcoded Composer installer hash will become outdated and cause installation failures. Consider fetching the expected hash dynamically from the Composer website or documenting that this needs periodic updates.

Suggested change
EXPECTED_HASH="ed0feb545ba87161262f2d45a633e34f591ebb3381f2e0063c345ebea4d228dd0043083717770234ec00c5a9f9593792"
EXPECTED_HASH=$(curl -s https://composer.github.io/installer.sig)

Copilot uses AI. Check for mistakes.

@simonostendorf simonostendorf merged commit e373105 into dev Oct 17, 2025
2 checks passed
@simonostendorf simonostendorf deleted the feat/deployment branch October 17, 2025 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant