EvoX Genesis
EvoX Genesis turns a high-level software objective into a persistent recursive software world: finite-lived agents recursively develop software, while only accepted consequences persist across develop
翻译准备中
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Modula Deploy: a self-hosted, Railway-style platform
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Self-hosted platform for deploying apps and databases on your own servers. Push to GitHub or pick an image, and Modula builds, deploys, routes and secures it. The workflow is modeled on Railway's: a project canvas, environments, staged changes, variables with references, domains, database backups and a CLI.
Status: alpha. It runs real apps, but expect rough edges and breaking changes before 1.0. Today an instance has a single owner account; teams and invites come later. Read SECURITY.md before exposing it.
modula up from a local directory. Builds use Railpack
or your Dockerfile, in a sandboxed BuildKit per workspace.${{ Postgres.DATABASE_URL }}),
sealed values, encrypted at rest with keys per environment.modula mirrors the Railway CLI's commands;
.modula/modula.ts (TypeScript, like Railway's railway.ts) or
.modula/modula.toml keeps a whole project in git.On a fresh Ubuntu 22.04+ or Debian 12+ server (2 GB RAM or more):
curl -fsSL https://usemodula.org/install.sh | bash
No domain is needed to start: the dashboard comes up on https://<server IP>
and you can set a domain later in Settings → Domain. The installer sets up
Postgres, Redis, Docker and Caddy, downloads binaries verified against a signed
checksum list, writes hardened systemd units, and prints a one-time setup token.
It also writes /root/modula-recovery-kit.txt with the master key: copy it
somewhere safe and delete it from the server.
Full details, including unattended installs, ports, upgrades and recovery: guide/install.md.
Or work from the terminal. Install the CLI on your own machine (Linux or macOS):
curl -fsSL https://usemodula.org/install-cli.sh | bash
Then log in and deploy the current directory:
modula login deploy.example.com # approve the login in your browser
modula init # create a project, or `modula link` an existing one
modula up # build and deploy this directory
modula logs # follow the logs
Every command is in guide/cli.md; scripting and agent use is in guide/cli-for-humans-and-agents.md.
The guide covers everything: projects and services, variables, deployments, databases, backups, domains, servers, the CLI, the API, and migrating from Railway.
crates/server modula-server: axum API, auth, authz, jobs, migrations, embedded UI,
internal CA, node endpoint (gRPC), deployments
crates/node modula-node: runs on every server; Docker runtime, Caddy, builds, databases
crates/cli the `modula` CLI
crates/crypto envelope encryption (XChaCha20-Poly1305, AAD-bound), tokens, argon2id
crates/proto modula.node.v1 gRPC protocol between server and node
crates/backup backup streaming, age encryption, outbound network guard
crates/hetzner Hetzner Cloud API client
web/ React SPA (served by modula-server)
deploy/ install.sh, release public key, e2e installer test
scripts/ check.sh (what CI runs), release.sh, dev-*.sh
guide/ user documentation
Prerequisites and conventions are in CONTRIBUTING.md.
scripts/dev-services.sh # Postgres :55432, Redis :56379 (127.0.0.1 only)
cp .env.example .env && set -a && . ./.env && set +a
(cd web && pnpm install && pnpm build) # without web/dist the UI is blank
cargo run -p modula-server -- keygen --out ./dev-master.key
cargo run -p modula-server # prints the one-time setup token
scripts/check.sh # fmt, clippy, tests, deny, audit, no-shell
Run a server (node) against it. The join command comes from Servers → Add
server or POST /api/nodes/join-tokens:
MODULA_JOIN_TOKEN=mcj_… cargo run -p modula-node -- --data-dir .dev/node join --server https://localhost:7101 --ca sha256:…
cargo run -p modula-node -- --data-dir .dev/node run
cargo test -p modula-node --test docker -- --ignored # real Docker round trip
On macOS, Docker Desktop can't route to container IPs from the host, so health
checks only pass when modula-node runs on Linux. scripts/dev-node.sh starts a
simulated server (a privileged container with its own dockerd, Caddy and node)
joined to scripts/dev-server.sh:
scripts/dev-node.sh dev-node-1 8080 # apps on http://<generated>.localhost:8080
scripts/dev-node.sh dev-node-1 --rm # remove it
For the UI with hot reload: scripts/dev-server.sh, then cd web && pnpm dev
(start the server with MODULA_PUBLIC_URL=http://localhost:5173).
Releases are built and signed with scripts/release.sh; the signing key lives
outside the repository and its public half is deploy/release.pub.pem.
deploy/e2e/run.sh runs the installer end to end in systemd containers.
Contributions are welcome: bug reports, fixes, docs, and features.
scripts/check.sh
(the same checks as CI) before opening a pull request. Add tests for behavior you
change, and update the guide when users would notice.guide/
are some of the most useful contributions.CONTRIBUTING.md has prerequisites, conventions and the review process. Security issues go through SECURITY.md, never public issues. Everyone taking part follows the Code of Conduct.
Please report vulnerabilities privately, as described in SECURITY.md. The design in brief:
Origin match (CSRF); sessions are hashed,
__Host- HttpOnly cookies, rotated on login and sudo.no-new-privileges, default memory and
CPU limits, one network per environment, and no access to cloud metadata.
Builds run in a sandboxed BuildKit per workspace.scripts/no-shell.sh enforces it in CI).AGPL-3.0-only. Third-party components and their licenses are listed in THIRD_PARTY_NOTICES.md.
Modula Deploy is not affiliated with or endorsed by Railway Corp. "Railway" is their trademark and is used here only to describe compatibility.