---
title: "Deploy Silex | (Just Updated) No-Code Website Builder, Webflow Alternative, Login Pre-Set"
description: "Silex no-code website builder: self-hosted editor, login and API ready"
category: "CMS"
url: https://railway.com/deploy/silex-or-just-updated-no-code-website-bu
---

# Deploy Silex | (Just Updated) No-Code Website Builder, Webflow Alternative, Login Pre-Set

Silex no-code website builder: self-hosted editor, login and API ready

**[Deploy Silex | (Just Updated) No-Code Website Builder, Webflow Alternative, Login Pre-Set on Railway](https://railway.com/template/silex-or-just-updated-no-code-website-bu)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/silex-or-just-updated-no-code-website-bu/manifest.json

- **Creator:** SuperSlowSloth
- **Category:** CMS

## Template content

### silex

- **Image:** ghcr.io/bon5co/silex-railway:3.7.0@sha256:fcadfd43983a30ae65b61039abcf5ec3ef1c33b35363327540c501692feda00b
- **Health check:** /healthz
- **Public domain:** Yes

## Documentation

# Deploy and Host Silex on Railway

**Built for an LLM agent to deploy and use.** The deploy form has no field to fill: `SILEX_ADMIN_PASSWORD` and `SILEX_SESSION_SECRET` are generated for you. Silex, the open-source no-code website builder, comes up behind a login that already exists (upstream Silex has none), with a volume that keeps every site, asset and published page across redeploys, and a public HTTPS address. The contract below lists every address, variable name and one script that checks health, proves a write is refused without the password, then creates and lists a website over the API.

Silex here is the official `silexlabs/silex` image, version 3.7.0, pinned by digest, wrapped with Caddy HTTP basic auth. Silex is a visual website editor (a Webflow and Wix alternative) that exports clean static HTML and CSS, with a REST API for websites, assets and publication. Sites are stored as files, not in a database.

## About Hosting Silex

Upstream Silex ships a file-system storage connector with no authentication at all: anyone who can reach the URL can open the editor and edit or delete every site. A bare deploy of the stock image on a public Railway domain would be exactly that. This template runs Caddy on Railway's injected `PORT` and keeps Silex on loopback behind it. Every route needs HTTP basic auth (user `admin`, password `SILEX_ADMIN_PASSWORD`) except `/healthz`, which Silex itself answers, so the healthcheck fails when Silex is down rather than when the proxy is.

Everything Silex writes lives on the volume mounted at `/data`: the website sources under `/data/storage` and the published output under `/data/hosting`. Redeploys keep them, and the credentials stay the same because the variables are generated once per deploy of the template, not per boot. The Caddy password hash is derived from `SILEX_ADMIN_PASSWORD` at every start.

Change the password by editing `SILEX_ADMIN_PASSWORD` in the service variables and redeploying.

### Agent contract

- Public URL: `https://$RAILWAY_PUBLIC_DOMAIN` (the `silex` service's generated domain)
- Private URL: `http://silex.railway.internal:8080`
- Credentials: username `admin`, password in the variable `SILEX_ADMIN_PASSWORD`
- Auth: HTTP Basic (`curl -u admin:$SILEX_ADMIN_PASSWORD`) on every route except `/healthz`; the API is `/api/website?connectorId=fs-storage` (`GET` lists websites, `PUT` with `{"name": "..."}` creates one); the editor is at `/`
- Health: `GET /healthz` returns 200 without authentication

```bash
# needs: RAILWAY_PUBLIC_DOMAIN of the silex service, and SILEX_ADMIN_PASSWORD from its variables
BASE="https://$RAILWAY_PUBLIC_DOMAIN"
curl -s -o /dev/null -w "health: %{http_code}\n" "$BASE/healthz"
curl -s -o /dev/null -w "read without key: %{http_code}\n" "$BASE/api/website?connectorId=fs-storage"
curl -s -o /dev/null -w "write without key: %{http_code}\n" -X PUT -H 'Content-Type: application/json' -d '{"name":"agent-site"}' "$BASE/api/website?connectorId=fs-storage"
curl -s -w "\nwrite with key: %{http_code}\n" -u "admin:$SILEX_ADMIN_PASSWORD" -X PUT -H 'Content-Type: application/json' -d '{"name":"agent-site"}' "$BASE/api/website?connectorId=fs-storage"
curl -s -u "admin:$SILEX_ADMIN_PASSWORD" "$BASE/api/website?connectorId=fs-storage" | jq -c '.[].name'
```

A fresh deploy prints `health: 200`, `read without key: 401`, `write without key: 401`, `{"message":"Website meta saved"}` with `write with key: 200`, then the website names including `"agent-site"` and `"Default website"`. Open `$BASE/` in a browser to use the visual editor; the browser asks for the same username and password.

## Why Deploy Silex on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Silex on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

- **Agent-ready** - generated admin password, a contract block and one working health, auth-refusal and API-write script.
- **Locked by default** - the stock Silex editor and API are open to anyone; this deploy puts a login in front of all of it.
- **Persistent** - a volume at `/data` holds websites, assets and published output; the image is pinned by digest.
- **Private-network reachable** - the proxy binds IPv4 and IPv6, so other Railway services use `silex.railway.internal:8080`.
- **Health-checked** - Railway restarts the service if `/healthz` stops answering.

## Common Use Cases

- **Visual site builder for a team or client** - design pages in the browser and export clean static HTML and CSS.
- **Website generation by an agent** - create websites and write their content through the REST API.
- **Self-hosted Webflow or Wix alternative** - keep the sites and the editor on your own infrastructure.
- **Landing pages and portfolios** - publish static output from the same service that edits it.

## Dependencies for Silex Hosting

- Nothing else to run. Silex stores sites as files on the volume; no database or cache is needed.

### Deployment Dependencies

- [Silex repository](https://github.com/silexlabs/Silex)
- [Silex documentation](https://docs.silex.me/)
- [Docker image](https://hub.docker.com/r/silexlabs/silex)
- [Wrapper image source](https://github.com/bon5co/silex-railway)

### Implementation Details

| Variable | Purpose |
| --- | --- |
| `SILEX_ADMIN_PASSWORD` | Generated at deploy. Password of the `admin` basic-auth login in front of Silex. |
| `SILEX_SESSION_SECRET` | Generated at deploy. Silex's session signing secret. |

Caddy listens on Railway's `PORT` (8080); Silex listens on `127.0.0.1:6805` inside the container. Data directory: `/data`.


## Similar templates

- [Libredesk - Complete Setup](https://railway.com/deploy/libredesk-complete-setup) — Complete self-hosted omnichannel customer support desk.
- [Paperless-ngx](https://railway.com/deploy/paperless-ngx-3) — Paperless-ngx — document management with OCR and full-text search
- [Instatic CMS - Postgres](https://railway.com/deploy/instatic-cms-postgres) — Design, build and manage powerful static sites from state-of-the-art CMS

Open this page in a browser: https://railway.com/deploy/silex-or-just-updated-no-code-website-bu
