Skip to content

Simprint/simprint-console-server

Repository files navigation

Simprint Console Server

Self-hosted console gateway for Simprint administration, release operations, maintenance controls, and related management APIs.

License AGPLv3 Language Rust Framework Axum 0.8 Service Console Gateway

English | 简体中文


Introduction

Simprint Console Server is the self-hosted console gateway used for Simprint administrative operations. It exposes management-oriented HTTP APIs and also provides CLI commands for administrator and API key workflows.

It is intended for deployments that want to keep console-side operations under their own control, including release management, maintenance operations, extension administration, admin permission management, and related service-side tooling.

Why Simprint Console Server?

Administrative gateways usually need a different operating surface from end-user APIs:

  • They need management-oriented routes that should not be mixed into public client traffic.
  • They often need operational CLI entry points for bootstrap and maintenance tasks.
  • They need a publish-safe configuration template instead of checked-in real environment secrets.
  • They need a predictable self-hosted packaging flow for controlled deployment.

Simprint Console Server is built around those constraints: one Rust service, HTTP plus CLI management capabilities, and a release package that only ships an example configuration template.

Features

  • Console management API: Serves administration endpoints for users, versions, gray release flows, extensions, maintenance, health checks, and related console-side operations.
  • Admin CLI: Supports administrator management commands such as add, remove, list, grant, grant-all, revoke, show, and sync-permissions.
  • API key CLI: Supports management commands for console API keys, including create, list, and deactivate.
  • Storage integration: Connects to external object storage for version assets, extensions, avatars, and related resources.
  • SMTP integration: Supports mail-backed flows through configurable SMTP settings.
  • Docker-oriented packaging: Builds a release archive containing Dockerfile, docker-compose.yml, and configs/config.toml generated from configs/config.example.toml.
  • Config-first execution: Uses the same --config <config.toml> startup contract for local runs and container runs.

Quick Start

Prerequisites

  • Rust toolchain
  • PostgreSQL 16+ or a compatible PostgreSQL instance
  • Redis 7+
  • S3-compatible object storage
  • Optional SMTP server for mail-related flows

Run locally

cp configs/config.example.toml configs/config.local.toml
# edit configs/config.local.toml
cargo run -- --config configs/config.local.toml

The example configuration listens on port 40043 and uses the /api/v1 prefix by default.

CLI examples

# show help
cargo run -- --help

# start the HTTP service explicitly
cargo run -- --config configs/config.local.toml serve

# add an admin user by UUID
cargo run -- --config configs/config.local.toml admin add --user-uuid <user-uuid>

# sync route permissions into the database
cargo run -- --config configs/config.local.toml admin sync-permissions

# create an API key
cargo run -- --config configs/config.local.toml apikey create --name "Console Key"

Build a Docker release package

Use:

uv run python build_docker.py

The default build produces:

  • ./simprint-console-server
  • ./simprint-console-server-docker-*.tar.gz

You can also use options such as:

uv run python build_docker.py --clean
uv run python build_docker.py --no-package
uv run python build_docker.py --format zip
uv run python build_docker.py --dev --no-package

The packaged configs/config.toml is generated from configs/config.example.toml, and real environment-specific config files are intentionally not included in the release archive.

Status

Simprint Console Server was originally developed as part of a private commercial backend stack. This repository is now being prepared for a public open-source release, and the documentation is being rewritten to make standalone self-hosted deployment easier to understand.

Some route organization and naming still reflect earlier internal deployment assumptions. The current direction is to keep the console gateway deployable as an independent service with a cleaner public-facing setup.

Contributing

This repository is still in an open-source refactoring phase, but issues and pull requests are welcome.

High-value contribution areas include:

  • Self-hosted deployment docs and onboarding improvements
  • Management workflow verification and regression coverage
  • API documentation and console integration examples
  • Packaging, release, and CI improvements

Useful entry points when exploring the codebase:

  • src/main.rs
  • src/cli/cli.rs
  • src/utils/config.rs
  • configs/config.example.toml
  • build_docker.py

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3).

If you want to use Simprint Console Server in a way that does not comply with the AGPLv3 obligations, including distributing modified versions or providing modified versions as a closed-source service, please contact us for a commercial license.

About

Control plane backend for Simprint: teams, workspaces, browser environments, automation orchestration, and management APIs.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages