Skip to content

Repository files navigation

InfraForge

Platform DevOps self-hosted open source untuk membangun, mendeploy, memonitor, dan mengelola aplikasi semuanya dari satu dashboard terpusat.

Bukan sekadar "dashboard Docker". InfraForge adalah Internal Developer Platform (IDP) sederhana yang menyatukan tool-tool DevOps yang biasanya berdiri sendiri (Docker, Traefik, Prometheus, Grafana, Loki, GitHub Actions) menjadi satu alur kerja yang mulus.


Daftar Isi


Masalah yang Diselesaikan

Tanpa InfraForge, deploy aplikasi biasanya melewati banyak tool yang terpisah:

GitHub → GitHub Actions → Docker Build → Docker Push → SSH ke VPS
   → docker compose pull → docker compose up
   → buka Grafana → buka Prometheus → buka Loki
   → cek logs → cek container → cek SSL → backup database

Dengan InfraForge, alurnya jadi:

Push Code → GitHub Actions → InfraForge → Deploy

Sisanya routing, HTTPS, monitoring, logging, alerting, backup ditangani otomatis oleh platform.


Cara Kerja

flowchart TD
    A[Developer push code] --> B[GitHub Repository]
    B --> C["GitHub Actions<br/>lint → test → build image"]
    C --> D[Push image ke GHCR]
    D --> E[InfraForge mendeteksi image terbaru]
    E --> F["docker compose up<br/>+ health check"]
    F --> G[Traefik: routing & HTTPS otomatis]
    F --> H[Prometheus: scrape metrics]
    F --> I[Logs dikirim ke Loki]
    H --> J[Grafana Dashboard]
    I --> J
    H --> K[Alertmanager]
    K --> L["Notifikasi ke Discord / Telegram"]
Loading
  1. Push -> developer push code ke GitHub.
  2. CI -> GitHub Actions menjalankan lint, test, build image, lalu push ke GHCR.
  3. Deploy -> InfraForge menarik image terbaru dan menjalankan docker compose up beserta health check.
  4. Routing -> Traefik otomatis membuat routing dan HTTPS untuk domain aplikasi.
  5. Observability -> Prometheus mengambil metric, Loki mengumpulkan log, semuanya tampil di Grafana.
  6. Alerting -> Alertmanager mengirim notifikasi ke Discord/Telegram saat CPU tinggi, RAM penuh, atau container mati.

Arsitektur

flowchart TD
    Dashboard[InfraForge Dashboard]
    Dashboard --> Backend["Backend (FastAPI)"]
    Dashboard --> Frontend["Frontend (React)"]
    Dashboard --> CLI["CLI (Typer)"]

    Backend --> Docker
    Backend --> PostgreSQL
    Backend --> Redis
    Backend --> MinIO
    Backend --> Traefik
    Backend --> Prometheus
    Backend --> Grafana
    Backend --> Loki
    Backend --> Alertmanager
    Backend --> GHA[GitHub Actions]
Loading

Fitur Utama

Kategori Detail
Deployment Deploy aplikasi hanya dengan beberapa klik
Container Management Start, stop, restart, delete, view logs
Monitoring CPU, RAM, Disk, Docker, Network, Uptime
Logging Lihat log seluruh container dari satu tempat
Project Management Satu server bisa kelola banyak project sekaligus
Authentication JWT-based authentication
Backup Backup database & file ke MinIO
Dashboard Ringkasan container, resource usage, deployment history, alerts

Tech Stack

Language

Python Bash

Backend

FastAPI SQLAlchemy Alembic Pydantic Uvicorn

Frontend

React Vite TypeScript Tailwind CSS shadcn/ui TanStack Query React Router

Database

PostgreSQL

Cache

Redis

Reverse Proxy

Traefik

SSL

Let's Encrypt

Container

Docker Docker Compose

Container Registry

GHCR

CI/CD

GitHub Actions

Monitoring

Prometheus Grafana Node Exporter cAdvisor

Logging

Loki Promtail

Alerting

Alertmanager

Object Storage

MinIO

Documentation

MkDocs Material

Testing

Pytest Ruff mypy

API Testing

Bruno

CLI

Typer

DNS

Cloudflare


Struktur Folder

InfraForge/
├── backend/          # FastAPI app (api, core, models, services, dst)
├── frontend/         # React app
├── infrastructure/   # Config Traefik, Postgres, Redis, MinIO, Prometheus, Grafana, Loki, dst
├── cli/              # CLI berbasis Typer
├── docs/             # Dokumentasi tambahan
├── .github/workflows # CI/CD pipelines
└── docker-compose.yml

Getting Started

git clone https://github.com/Varaaa-arch/InfraForge.git
cd InfraForge
cp .env.example .env
docker compose up -d

Setup lengkap masih dalam pengembangan, instruksi detail akan ditambahkan seiring progress.


Kenapa Namanya InfraForge?

  • Infra = Infrastructure
  • Forge = menempa, membangun sesuatu yang kuat

"Tempat untuk membangun, mengelola, dan mengoperasikan infrastruktur aplikasi."

Nama ini sengaja dibuat fleksibel saat project berkembang ke arah Kubernetes, GitOps, atau multi-cloud, nama InfraForge tetap relevan.


Lisensi

Proyek ini dilisensikan di bawah Apache License 2.0. Lihat file LICENSE untuk informasi selengkapnya.

About

AI-Powered open-source DevOps platform for infrastructure, monitoring, deployment automation, security, scanning, observability, and kubernetes management

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages