{"id":27899440,"url":"https://github.com/ixoncloud/edge-app-reverse-proxy","last_synced_at":"2025-05-05T19:34:50.610Z","repository":{"id":288241204,"uuid":"967315190","full_name":"ixoncloud/edge-app-reverse-proxy","owner":"ixoncloud","description":"Edge App - Reverse Proxy","archived":false,"fork":false,"pushed_at":"2025-04-16T09:13:28.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-16T12:18:34.074Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ixoncloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null}},"created_at":"2025-04-16T09:09:04.000Z","updated_at":"2025-04-16T09:13:32.000Z","dependencies_parsed_at":"2025-04-20T06:00:46.028Z","dependency_job_id":null,"html_url":"https://github.com/ixoncloud/edge-app-reverse-proxy","commit_stats":null,"previous_names":["ixoncloud/edge-app-reverse-proxy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixoncloud%2Fedge-app-reverse-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixoncloud%2Fedge-app-reverse-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixoncloud%2Fedge-app-reverse-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixoncloud%2Fedge-app-reverse-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ixoncloud","download_url":"https://codeload.github.com/ixoncloud/edge-app-reverse-proxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252562744,"owners_count":21768341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-05-05T19:30:41.800Z","updated_at":"2025-05-05T19:34:50.602Z","avatar_url":"https://github.com/ixoncloud.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Edge App - Reverse Proxy\n\nThis project provides a reverse proxy solution for using multiple backend services on the IXON SecureEdge Pro gateway via a single Web Access entry point. It includes an NGINX reverse proxy and two backend services, all containerized and ready for deployment.\n\n## Prerequisites\n\n1. Ensure your environment is properly set up by following this guide: [Running custom Docker applications on the SecureEdge Pro](https://support.ixon.cloud/hc/en-us/articles/14231117531420-Running-custom-Docker-applications-on-the-SecureEdge-Pro)\n2. Required tools:\n   - Docker and Docker Buildx\n   - `jq` for JSON processing\n   - `gettext` package (for `envsubst` command)\n   - Access to IXON SecureEdge Pro gateway\n\n## Application Overview\n\nThe application consists of three main components:\n\n1. **NGINX Reverse Proxy** (`nginx-proxy`)\n\n   - Serves as the main entry point (port 8000)\n   - Routes traffic to appropriate backend services\n   - Configurable through environment variables\n\n2. **Backend Service 1** (`backend-service1`)\n\n   - Runs on port 8081\n   - Includes persistent data storage\n\n3. **Backend Service 2** (`backend-service2`)\n   - Runs on port 8082\n   - Includes persistent data storage\n\nAll services run in their own containers and are connected through the `machine-builder` network.\n\n## Configuration\n\n1. Copy `.env-example` to `.env` and configure your environment variables:\n\n   ```bash\n   cp .env-example .env\n   ```\n\n2. The `container_configs.json` file contains the configuration for all containers, including:\n   - Container names and image tags\n   - Port mappings\n   - Volume mounts\n   - Environment variables\n   - Network settings\n\n## Configuring Web Access in IXON Cloud\n\nTo enable remote access to your reverse proxy and backend services through IXON Cloud:\n\n1. **Add HTTP WebAccess in Fleet Manager**\n\n   - Navigate to Fleet Manager \u003e Devices and select your device\n   - Click the add icon in the Services section\n   - Select \"HTTP server\"\n   - Configure the following settings:\n     - Name: Choose a descriptive name (e.g., \"Reverse Proxy\")\n     - Service group: (Optional) Group related services\n     - Protocol: HTTP\n     - Port: 8000 (default port for the reverse proxy)\n     - Default landing page: \"/\"\n     - Access Category: Configure who can access this service\n     - Show in device overview: Enable for easy access\n\n2. **Push Configuration**\n\n   - After adding the HTTP WebAccess, click \"Push config to device\"\n   - Note: The device may temporarily disconnect while applying new settings\n\n3. **Accessing the Services**\n   - Go to IXON Portal \u003e Devices\n   - Find your device and click the HTTP WebAccess button\n   - The reverse proxy will route requests to the appropriate backend service based on the URL path\n\nNote: All communication between your computer and the device will be secure, regardless of using HTTP internally.\n\n## Steps to Deploy and Run\n\n1. **Prepare the Environment**\n\n   ```bash\n   # Make the deployment script executable\n   chmod +x deploy_edge_services.sh\n   ```\n\n2. **Deploy the Services**\n\n   ```bash\n   ./deploy_edge_services.sh\n   ```\n\n   This script will:\n\n   - Authenticate with the SecureEdge Pro\n   - Set up Docker Buildx\n   - Build and push container images\n   - Deploy and start all services\n\n3. **Verify Deployment**\n   - Access the NGINX proxy at `http://\u003cyour-gateway-ip\u003e:8000`\n   - Backend services will be available at their respective endpoints\n\n## Project Structure\n\n```\n.\n├── nginx-proxy/           # NGINX reverse proxy configuration\n├── backend-service1/      # First backend service\n├── backend-service2/      # Second backend service\n├── scripts/              # Deployment and utility scripts\n├── container_configs.json # Container configurations\n├── deploy_edge_services.sh # Main deployment script\n└── .env-example          # Example environment variables\n```\n\n## Troubleshooting\n\n1. **Container Issues**\n\n   - Check container logs using Docker commands\n   - Verify network connectivity between containers\n   - Ensure all required ports are accessible\n\n2. **Deployment Issues**\n   - Verify your `.env` configuration\n   - Check SecureEdge Pro connectivity\n   - Ensure all required tools are installed\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch\n3. Commit your changes\n4. Push to the branch\n5. Create a new Pull Request\n\n## License\n\nSee the [LICENSE.md](LICENSE.md) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fixoncloud%2Fedge-app-reverse-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fixoncloud%2Fedge-app-reverse-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fixoncloud%2Fedge-app-reverse-proxy/lists"}