A beautiful, intuitive dashboard for managing your servers, services, and credentials in one place.
Features β’ Quick Start β’ API Documentation β’ Contributing
- Features
- Tech Stack
- Quick Start
- API Documentation
- Configuration
- Project Structure
- Contributing
- License
- π Secure Authentication - JWT-based login and registration system
- π₯οΈ Server Management - Complete CRUD operations for servers with environment categorization (dev/staging/production)
- π Multiple Credentials - Store and manage multiple username/password combinations per server
- βοΈ Service Management - Track services running on each server with port mapping and credentials
- π Dashboard Analytics - Real-time statistics and recent server activity overview
- π Modern UI/UX - Dark mode with glassmorphism design for a premium experience
- Framework: React 19 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS v4
- Runtime: Bun
- Language: Go 1.25
- Framework: Gin
- Authentication: JWT
- SQLite - Lightweight and embedded
Before you begin, ensure you have the following installed:
- Go (1.25 or higher)
- Bun (for frontend)
- Docker & Docker Compose (optional, for containerized deployment)
git clone https://github.com/yourusername/inserv.git
cd inservcd backend
cp .env.example .env
# Edit .env with your configuration
# Generate a secure JWT secret
openssl rand -base64 32
# Update JWT_SECRET in .env with the generated value
go run ./cmd/serverThe backend API will be available at http://localhost:8080
cd frontend
bun install
bun run devThe frontend will be available at http://localhost:5173
For production or quick testing with Docker:
docker compose up -dThe application will be available at http://localhost:3000
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register |
Register a new user |
| POST | /api/auth/login |
Login user |
| GET | /api/auth/me |
Get current user info |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/servers |
List all servers |
| POST | /api/servers |
Create a new server |
| GET | /api/servers/:id |
Get server details |
| PUT | /api/servers/:id |
Update server |
| DELETE | /api/servers/:id |
Delete server |
| GET | /api/servers/:id/credentials |
List server credentials |
| POST | /api/servers/:id/credentials |
Add credential to server |
| GET | /api/servers/:id/services |
List server services |
| POST | /api/servers/:id/services |
Add service to server |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/dashboard/stats |
Get dashboard statistics |
Create a .env file in the backend directory with the following variables:
# Server Configuration
ENVIRONMENT=development
PORT=8080
# Database
DATABASE_PATH=./data/inserv.db
# Security
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
# CORS
ALLOW_ORIGINS=http://localhost:5173For production use, generate a secure random JWT secret:
Using OpenSSL (Recommended):
openssl rand -base64 32Using Node.js:
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"Using Python:
python3 -c "import secrets; print(secrets.token_urlsafe(32))"Copy the generated value and update JWT_SECRET in your .env file.
| Variable | Description | Default |
|---|---|---|
ENVIRONMENT |
Application environment (development/production) | development |
PORT |
Backend server port | 8080 |
DATABASE_PATH |
SQLite database file path | ./data/inserv.db |
JWT_SECRET |
Secret key for JWT token generation | - |
ALLOW_ORIGINS |
CORS allowed origins (comma-separated) | http://localhost:5173 |
inserv/
βββ backend/ # Go backend application
β βββ cmd/ # Application entrypoints
β β βββ server/ # Main server application
β βββ internal/ # Private application code
β β βββ config/ # Configuration management
β β βββ database/ # Database layer
β β βββ handlers/ # HTTP request handlers
β β βββ middleware/ # HTTP middleware
β β βββ models/ # Data models
β β βββ routes/ # Route definitions
β βββ data/ # SQLite database storage
βββ frontend/ # React frontend application
β βββ src/
β β βββ components/ # React components
β β βββ pages/ # Page components
β β βββ services/ # API services
β β βββ hooks/ # Custom React hooks
β β βββ types/ # TypeScript types
β β βββ utils/ # Utility functions
β βββ public/ # Static assets
βββ docker-compose.yml # Docker composition
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ by the Inserv Team