Skip to content

Architecture

Overview

This document provides an overview of the architecture for the project, detailing the various components and their interactions.

API Layer

  • Language: Go
  • Location: api directory
  • Description: The API layer is built using Go, providing backend services. It includes a Dockerfile for containerization and uses Go modules for dependency management.

Frontend Layer

  • Framework: Next.js
  • Location: view directory
  • Description: The frontend is built using a JavaScript framework, with configuration files indicating the use of Next.js. It includes a Dockerfile for containerization and a package.json for managing dependencies.

Assets

  • Location: assets directory
  • Description: Contains image files used for branding and UI elements.

Installation

  • Language: Python
  • Location: installer directory
  • Description: Python scripts are used for installation and setup, managing the installation process and dependencies.

Deployment

  • Tools: Docker, Docker Compose
  • Description: The project uses Docker for containerization and Docker Compose for orchestrating multi-container applications. Configuration files are provided for both development and staging environments.

Web Server

  • Tool: Caddy
  • Location: helpers directory
  • Description: Caddy is used as a web server, with configuration files provided for setup.

Documentation

  • Location: docs directory
  • Description: Contains various documentation files and directories, including this architecture overview.

TLDR

Note: The architecture overview provided is a high-level representation of the project's structure and components.

  • UI: React.js (Next.js)
  • Backend: Go (authentication, deployments, real-time via WebSockets)
  • Data Storage: PostgreSQL (uses LISTEN/NOTIFY for realtime)
  • Containerization: Docker Compose (each component in its own container)
  • Reverse Proxy: Caddy (routes HTTPS, manages TLS)
  • Integrations:
    • GitHub (OAuth & webhooks)
    • Notifications via Email, Slack, Discord
    • Setup & Dev: .devcontainer/ for local development
    • Production: Python installer scripts for production
  • TestingCI/CD: GitHub Actions (automated testing and deployments)
  • Documentation: Built-in docs under docs/ using vitepress

This architecture setup allows for a modular and scalable application, leveraging containerization for easy deployment and management.

Made with love
Released under the Functional Source License (FSL)