Total Pageviews

Monday, 27 April 2026

stormkit

 

Self-hostable alternative to Vercel/Netlify. Deploy modern web apps with automated CI/CD, custom domains, and environment management.

 

Stormkit is a hosting solution for seamless deployment and management of modern web applications.

Self-Hosted Edition

The Self-Hosted Edition of Stormkit gives you the flexibility to host your own instance of Stormkit on your infrastructure. This version is ideal for organizations that require more control over their hosting environment, need to comply with specific regulatory requirements, or prefer to manage their own infrastructure.

Getting Started

To get started with the Self-Hosted Edition of Stormkit, you can choose to use either the provided binaries or Docker images.

Using docker containers

You can use Docker images to run the Self-Hosted Edition. The following images are available:

  • ghcr.io/stormkit-io/workerserver:latest
  • ghcr.io/stormkit-io/hosting:latest

Additional services

In addition to the Stormkit's microservices, a PostgreSQL database and a Redis Instance is also required for Stormkit to function properly.

Local Development

To run Stormkit locally:

Prerequisites

  • Go 1.21+
  • Node.js 22+
  • PostgreSQL 14+
  • Redis 7+
  • Mise
  • Docker

You can install go and node using Mise, which is a polyglot tool version manager.

# Trust the dependencies specified in `mise.toml` and install them
mise trust && mise install

Running the services

# Clone the repository
git clone https://github.com/stormkit-io/stormkit-io
cd stormkit-io

# Start all services (includes database setup and migrations)
make dev

After starting the services:

  • The landing page will be available at https://localhost:5500
  • The application will be available at https://localhost:5400
  • The API will be available at http://api.localhost:8888

Project Structure

stormkit-io/
├── src/
│   ├── ce/                   # Community Edition (AGPL-3.0)
│   │   ├── api/              # REST API server
│   │   ├── hosting/          # Hosting service
│   │   ├── runner/           # Build and deployment runner
│   │   └── workerserver/     # Background job processing
│   ├── ee/                   # Enterprise Edition (Commercial)
│   │   ├── api/              # Enterprise API features
│   │   ├── hosting/          # Enterprise hosting features
│   │   └── workerserver/     # Enterprise background services
│   ├── lib/                  # Shared libraries and utilities
│   ├── migrations/           # Database migrations
│   ├── mocks/                # Test mocks and fixtures
│   └── ui/                   # Frontend React
│   └── www/                  # Landing page React
├── scripts/                  # Build and deployment scripts

Component Overview

  • Community Edition (src/ce/): Open source components under AGPL-3.0
  • Enterprise Edition (src/ee/): Commercial features requiring a license
  • Shared Libraries (src/lib/): Common utilities used by both editions
  • Frontend (src/ui/): React-based web interface

Testing

Tests require PostgreSQL with a test database named sktest and Redis to be running.

Setup

# Start services
docker compose up -d db redis

# Create test database
docker compose exec db createdb -U ${POSTGRES_USER} sktest

Running Tests

# Run backend and frontend tests
make test

# Run only backend tests
make test-be

# Run only frontend tests
make test-fe

Generating mocks

When adding or changing interfaces under src/lib (or other packages) we generate testify mocks using mockery so tests can inject fakes.

Recommended command (run from the repository root):

# generate mocks for all interfaces in the repo that require the alibaba and imageopt build tags
mockery --case=underscore --dir ./ --tags=alibaba,imageopt --all --output=./src/mocks

Notes:

  • You can run mockery via go run if you don't want to install the binary globally:
go run github.com/vektra/mockery/v2@latest --case=underscore --dir ./ --tags=alibaba,imageopt --all --output=./src/mocks
  • If you need expecter helpers for testify, add --with-expecter to the command.
  • Use --case=underscore to match repository naming conventions for generated files.
  • After regenerating mocks, run gofmt/go vet and go test ./... and commit the updated files under src/mocks.

Troubleshooting

For detailed troubleshooting steps, see our dedicated troubleshooting guide.

from  https://github.com/stormkit-io/stormkit-io

我使用其 Cloud Edition部署web application(比如静态博客程序)失败。找时间试试它的Self-Hosted Edition


No comments:

Post a Comment