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.
To run Stormkit locally:
Prerequisites
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 installRunning 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 devAfter 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
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# Run backend and frontend tests
make test
# Run only backend tests
make test-be
# Run only frontend tests
make test-feGenerating 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/mocksNotes:
- You can run mockery via
go runif 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-expecterto the command. - Use
--case=underscoreto match repository naming conventions for generated files. - After regenerating mocks, run
gofmt/go vetandgo test ./...and commit the updated files undersrc/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