{"id":21425173,"url":"https://github.com/henrique-efonseca/project-hub-server","last_synced_at":"2026-04-06T09:33:37.489Z","repository":{"id":246786712,"uuid":"821116533","full_name":"henrique-efonseca/project-hub-server","owner":"henrique-efonseca","description":"Terraform configuration and Ansible playbooks for provisioning and configuring the infrastructure of my Project Hub server, deploying services, and setting up a reverse proxy.","archived":false,"fork":false,"pushed_at":"2024-10-06T00:08:17.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-05T13:40:46.279Z","etag":null,"topics":["ansible","bash","docker","terraform"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/henrique-efonseca.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-27T21:06:47.000Z","updated_at":"2024-10-06T00:08:21.000Z","dependencies_parsed_at":"2024-11-22T21:39:41.536Z","dependency_job_id":null,"html_url":"https://github.com/henrique-efonseca/project-hub-server","commit_stats":null,"previous_names":["henrique-efonseca/project-hub-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/henrique-efonseca/project-hub-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrique-efonseca%2Fproject-hub-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrique-efonseca%2Fproject-hub-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrique-efonseca%2Fproject-hub-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrique-efonseca%2Fproject-hub-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/henrique-efonseca","download_url":"https://codeload.github.com/henrique-efonseca/project-hub-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrique-efonseca%2Fproject-hub-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31466629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T08:36:52.050Z","status":"ssl_error","status_checked_at":"2026-04-06T08:36:51.267Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","bash","docker","terraform"],"created_at":"2024-11-22T21:27:15.573Z","updated_at":"2026-04-06T09:33:37.468Z","avatar_url":"https://github.com/henrique-efonseca.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Hub Infrastructure\n\nTerraform configuration and Ansible playbooks for provisioning and configuring the infrastructure of my Project Hub server, deploying services, and setting up the reverse proxy.\n\n## Overview\nI have a server, that I called **Project Hub**, to showcase some of my projects.\nThis repository contains Terraform scripts for provisioning the necessary infrastructure on AWS and Ansible playbooks for configuring and updating the server, deploying multiple services, and setting up a reverse proxy.\nThis setup ensures a consistent and automated deployment process for the Project Hub server.\n\n## Features\n\n- **Infrastructure as Code**: Use Terraform to define and provision server resources.\n- **Configuration Management**: Use Ansible to automate server configuration and application deployment.\n- **Reverse Proxy Setup**: Configure Apache to route requests to different services based on the URL.\n- **Automation**: Ensure consistent and repeatable deployments with minimal manual intervention.\n\n## Prerequisites\n\n- Terraform installed locally\n- Ansible installed locally\n- An AWS account with appropriate permissions\n- SSH key pair for accessing the server\n- Basic knowledge of Terraform and Ansible\n\n## Workflow Overview\n\n1. **Provision the Server with Terraform**:\n   - Run Terraform locally to provision the server and any necessary infrastructure (such as an EC2 instance on AWS).\n   - This is typically done once initially or whenever there is a need to change the infrastructure itself (e.g., changing instance types, adding new resources).\n\n2. **Configure and Deploy with Ansible**:\n   - After the infrastructure is provisioned, use Ansible to configure the server, deploy services, and manage the reverse proxy.\n   - Ansible can be run multiple times as needed to apply configuration changes, deploy new versions of services, or update existing configurations.\n\n## Setup Instructions\n\n### Initial Setup\n\n1. **Clone the Repository**:\n```bash\n   git clone https://github.com/yourusername/project-hub-infrastructure.git\n   cd project-hub-infrastructure\n```\n\u003cbr\u003e\n\n\n2. **Initialize Terraform**:\n```bash\n\nterraform init\n```\n\u003cbr\u003e\n\n\n\n3. **Apply Terraform Configuration**:\n\n```bash\nterraform apply\n```\n\nFollow the prompts to provide necessary variables such as the SSH key pair name.\n\u003cbr\u003e\n\n4. **Run Ansible Playboo**:\n\nThis playbook configures the server, deploys the services, and sets up the reverse proxy.\n```bash\nansible-playbook -i ansible/inventory.ini ansible/playbooks/site.yml\n```\n\u003cbr\u003e\n\n\n### Updating Configuration or Services\n\n\n1. **Modify Ansible Playbooks or Service Repositories**:\n\nMake necessary changes to Ansible playbooks, roles in the ansible directory or services.\n\u003cbr\u003e\n\n\n2. **Run Ansible Playbook**:\n\nTo apply any changes made to the Ansible playbooks, roles in the ansible directory, or any service repository (e.g., updating code or Dockerfile), it is necessary to run the Ansible playbook.\nApply the updates using Ansible:\n\n```bash\nansible-playbook -i ansible/inventory.ini ansible/playbooks/site.yml\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenrique-efonseca%2Fproject-hub-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenrique-efonseca%2Fproject-hub-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenrique-efonseca%2Fproject-hub-server/lists"}