-
Notifications
You must be signed in to change notification settings - Fork 14
Getting Started
This page starts a login-capable proxy on one host. Read Deployment and ACME Certificates before a production TLS cutover.
Create compose.yml:
services:
mirrorproxy:
image: kudang/mirrorproxy:latest
restart: unless-stopped
ports: ["127.0.0.1:3000:3000"]
environment:
MIRRORPROXY_ADMIN_PASSWORD: "replace-with-a-long-unique-password"
volumes: ["mirrorproxy-data:/data"]
volumes:
mirrorproxy-data:docker compose up -d
curl -f http://127.0.0.1:3000/healthz
docker compose logs mirrorproxyOpen /admin and sign in as the initial administrator. Without
MIRRORPROXY_ADMIN_PASSWORD, a random password appears only in the first
startup log; save it and change it immediately. Keep /data: it contains
SQLite, cache, writable GeoIP data, and admin-stored ACME secrets.
The server archive contains mirrorproxy-server, a configuration example, and
GeoIP data. Run it from persistent storage:
cp config.example.toml config.toml
./mirrorproxy-server --config ./config.toml serveFor a source checkout, fetch pinned GeoIP data first:
bash scripts/fetch-geoip.sh
cargo run -p mirrorproxy-server -- --config config.example.toml serveThe example listens on 127.0.0.1:3000. Do not expose the admin endpoint until
authentication, trusted proxies, and TLS are intentionally configured.
- Check required targets under Source health;
/api/sourcesis the live catalog. - Configure enabled adapters, upstreams, rate limits, cache, and outbound proxy.
- Put the service behind a trusted reverse proxy or enable native ACME HTTPS.
- Run
mirrorproxy list, then usemirrorproxy set npm --base-url https://your-host.
简体中文 · Deployment · Client