{"id":27334391,"url":"https://github.com/integeralex/fenrir","last_synced_at":"2026-02-28T13:31:25.163Z","repository":{"id":250358302,"uuid":"834232673","full_name":"IntegerAlex/Fenrir","owner":"IntegerAlex","description":"Automates the deployment of a Node.js application by generating a Dockerfile, building containers, handling SSL certification, configuring DNS, and monitoring deployment.","archived":false,"fork":false,"pushed_at":"2025-04-04T19:15:07.000Z","size":1226,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T04:12:11.153Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/IntegerAlex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-07-26T18:02:58.000Z","updated_at":"2025-03-31T01:52:02.000Z","dependencies_parsed_at":"2024-07-26T20:21:40.378Z","dependency_job_id":"54ff7b8a-f41f-44cb-905d-91e00e12878c","html_url":"https://github.com/IntegerAlex/Fenrir","commit_stats":null,"previous_names":["integeralex/flexr","integeralex/fenrir"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntegerAlex%2FFenrir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntegerAlex%2FFenrir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntegerAlex%2FFenrir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntegerAlex%2FFenrir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IntegerAlex","download_url":"https://codeload.github.com/IntegerAlex/Fenrir/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248578862,"owners_count":21127713,"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-04-12T14:12:51.454Z","updated_at":"2026-02-28T13:31:25.103Z","avatar_url":"https://github.com/IntegerAlex.png","language":"TypeScript","readme":"# Flexr\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./logo.png\" width=\"200\" alt=\"mascot\"\u003e\n\u003c/p\u003e\n\n---\n\n\u003e Flexr is a self-hosted platform that automates the containerization and deployment of Node.js applications. It provides automatic SSL, DNS management, and container orchestration.\n\n[![License: GPL-3.0](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue)](https://www.typescriptlang.org/)\n[![Node.js Version](https://img.shields.io/badge/node-v18%2B-green)](https://nodejs.org)\n\n## Overview\n\nFenrir simplifies the deployment of Node.js applications by automating the processes involved in building containers, generating SSL certificates, configuring DNS, and monitoring deployments. It integrates with GitHub to streamline deployment workflows and provides real-time updates on deployment status.\n\n## Features\n\n- **Automated Deployment Pipeline**\n  - Builds containers using Podman\n  - Generates SSL certificates automatically with Certbot\n  - Configures DNS dynamically through Cloudflare\n  - Sets up an NGINX reverse proxy\n\n- **Monitoring \u0026 Management**\n  - Provides real-time deployment status\n  - Monitors container health\n  - Tracks resource usage\n  - Maintains deployment history\n\n- **Security**\n  - Automatically manages SSL/TLS certificates\n  - Configures secure proxy settings\n  - Ensures container isolation\n\n## Why I Created Flexr\n\nI created Flexr to simplify the deployment process for Node.js applications, making it easier for developers to manage their applications without getting bogged down by the complexities of containerization and deployment. My goal is to provide a tool that enhances productivity and streamlines workflows.\n\n## Prerequisites\n\n- Node.js (v18+) \u0026 TypeScript\n- Podman\n- PostgreSQL\n- Redis\n- NGINX\n- Cloudflare Account\n\n## Environment Variables\n\n```bash\n# System Configuration\nLINUX_USR=your_linux_user\nHOST=your_domain\n\n# Cloudflare Configuration\nCLOUDFLARE_ZONE_ID=your_zone_id\nCLOUDFLARE_EMAIL=your_email\nCLOUDFLARE_GLOBAL_TOKEN=your_api_token\n\n# Certbot Configuration\nCERTBOT_EMAIL=your_email\n```\n\n## API Reference\n\n### Deployment Endpoints\n\n```typescript\nPOST /v1/runContainer\n{\n  \"userName\": \"string\",\n  \"projectName\": \"string\",\n  \"repoLink\": \"string\",\n  \"entryPoint\": \"string\",\n  \"buildCommand\": \"string\",\n  \"runCommand\": \"string\"\n}\n```\n\n### Management Endpoints\n\n- `GET /v1/health` - System health check\n- `GET /v1/repositories` - List GitHub repositories\n- `GET /v1/profile` - User profile information\n- `GET /htmx/deployments` - Deployment history\n\n## Architecture\n\n- **Frontend**: HTMX + Vanilla JavaScript\n- **Backend**: TypeScript \u0026 Express.js\n- **Database**: PostgreSQL + Redis\n- **Container**: Podman\n- **Proxy**: NGINX\n- **DNS**: Cloudflare API\n- **SSL**: Certbot\n\n## Currently Building For\n\nFenrir is currently built for RHEL-based distributions. While it can work on any Linux distribution as the necessary utilities are available, it has not been extensively tested on other systems.\n\n## Demo\n\n[![Demo Video](https://img.youtube.com/vi/your_video_id/0.jpg)](https://www.youtube.com/watch?v=your_video_id)\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.\n\n---\nMade with ❤️ by Akshat Kotpalliwar (alias IntegerAlex on GitHub)\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintegeralex%2Ffenrir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintegeralex%2Ffenrir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintegeralex%2Ffenrir/lists"}