wagecloud-server

module
v0.0.0-...-a66760f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2025 License: MIT

README

Wagecloud Server

wakatime Lines of Code Quality Gate Status

A Go-based server application for managing virtual machines. Figma

Overview

Wagecloud Server is a backend service that provides VM management capabilities with features including:

  • User account management with role-based access (Admin/User)
  • Virtual machine provisioning and management
  • Network management for VMs
  • Support for different OS and architectures

Tech Stack

  • Language: Go
  • Database: PostgreSQL with Prisma
  • Authentication: JWT-based
  • Payment Integration: VNPay
  • Monitoring: Sentry
  • Caching: In-memory cache implementation
  • Configuration: YAML-based

Prerequisites

  • Go 1.18 or higher
  • PostgreSQL
  • Node.js (for Prisma migrations)
  • libvirt (for VM management)

Configuration

Copy config/config.example.yml to config/config.yml and adjust the settings:

  • Database configuration
  • S3 storage settings
  • JWT secrets
  • VNPay integration details
  • Sentry configuration
  • Logger settings

Development

Start the development server:

make dev
Database Management

Initialize database migrations:

make init-migrate

Generate SQL:

make sqlc
VM Management

The project includes commands for VM management:

# Create cloud-init ISO
make cloudinit

# Install a new VM
make install

# Check VM IP addresses
make ip

# Remove a VM
make remove

Project Structure

WIP

Environment Variables

  • APP_STAGE: Set to "production" for production environment, otherwise defaults to development

License

ISC License

Directories

Path Synopsis
example
pion/client command
This example program showcases the use of the mDNS client by querying a previously published address
This example program showcases the use of the mDNS client by querying a previously published address
pion/server command
This example program showcases the use of the mDNS server by publishing "pion-test.local"
This example program showcases the use of the mDNS server by publishing "pion-test.local"
testpion/client command
This example program showcases the use of the mDNS client by querying a previously published address
This example program showcases the use of the mDNS client by querying a previously published address
testpion/server command
gen
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL