Add directory structure documentation to README

This commit is contained in:
Christoph Haas 2026-03-26 00:37:50 +01:00
parent b7d58d308a
commit d562e41528

View file

@ -13,7 +13,7 @@ A self-sufficient web application to manage an ISPmail (Postfix, Dovecot, Rspamd
## Tech Stack ## Tech Stack
- **Backend**: Go with net/http (no framework), GORM for database - **Backend**: Go with Gin framework, GORM for database
- **Frontend**: SvelteKit - **Frontend**: SvelteKit
- **Database**: MariaDB/MySQL (shared with mail server ISPmail schema) - **Database**: MariaDB/MySQL (shared with mail server ISPmail schema)
- **Auth**: JWT-based authentication - **Auth**: JWT-based authentication
@ -25,6 +25,36 @@ A self-sufficient web application to manage an ISPmail (Postfix, Dovecot, Rspamd
- Permissions controlled via `imc_users2domains` table - Permissions controlled via `imc_users2domains` table
- Admin users have access to all domains; non-admin users only to assigned domains - Admin users have access to all domains; non-admin users only to assigned domains
## Directory Structure
```
imc-vibe/
├── backend/ # Go backend
│ ├── cmd/server/ # Application entry point
│ │ ├── main.go # Main function, CLI flags, HTTP server setup
│ │ ├── frontend.go # Embedding the SvelteKit build
│ │ └── embed/ # Embedded frontend files (generated)
│ └── internal/ # Internal packages
│ ├── api/ # HTTP API routing and handlers
│ │ ├── router.go # Gin route definitions
│ │ └── handlers/ # HTTP handlers
│ ├── auth/ # JWT authentication
│ ├── config/ # Configuration loading
│ ├── db/ # Database models and operations
│ └── mail/ # Mail server integration (postqueue, logs, quota)
├── frontend/ # SvelteKit frontend
│ ├── src/
│ │ ├── app.css # Global CSS (Tailwind + daisyUI)
│ │ ├── app.html # HTML template
│ │ ├── lib/ # Shared utilities
│ │ └── routes/ # SvelteKit routes (pages)
│ ├── vite.config.ts # Vite configuration
│ └── package.json # Frontend dependencies
├── build/ # Built binary output (gitignored)
├── Makefile # Build automation
└── .env # Environment configuration (gitignored)
```
## Quick Start ## Quick Start
### 1. Build ### 1. Build