ArtiFerrisSicherheit
Sicherheit und Ihre Daten
Die Maßnahmen, die eine Instanz schützen, genau beschrieben. Die Daten bleiben auf Ihrem Server; nur Namen und Versionen geprüfter Pakete gehen an registry.npmjs.org.
Was der Server zurückschickt
Die Sicherheits-Header, wie eine Instanz sie sendet.
$ curl -s -D - -o /dev/null https://app.artiferris.pro/healthz
HTTP/2 200
content-security-policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https:; font-src 'self' data:; connect-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'
content-type: text/plain; charset=utf-8
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
date: Tue, 06 Oct 2026 14:31:01 GMT
permissions-policy: accelerometer=(), autoplay=(), camera=(), display-capture=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), usb=(), xr-spatial-tracking=()
referrer-policy: same-origin
strict-transport-security: max-age=31536000; includeSubDomains; preload
vary: origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
content-length: 2- Zwei-Faktor-Authentifizierung ist verpflichtend
- Authenticator-App oder Passkey, mit zehn Backup-Codes. Ein eigenes, kurzlebiges Token steht für „Passwort geprüft, zweiter Faktor erwartet“; es dient nicht als Sitzung.
- Mit Argon2 gehashte Passwörter
- Für lokale Konten. LDAP- und OIDC-Konten authentifizieren sich bei ihrem Anbieter, und fehlgeschlagene Anmeldungen werden begrenzt.
- Auf jeder Route geprüfte Rechte
- Die Rechte eines Repositorys setzt der Server durch, sie sind nicht nur in der Oberfläche ausgeblendet. Anfragekörper werden erst nach diesen Prüfungen gelesen.
- Mit AES-256-GCM verschlüsselte Geheimnisse
- SMTP-, LDAP- und OIDC-Passwörter, Zugangsdaten der Proxys und TOTP-Seeds, unter
SECRETS_ENCRYPTION_KEY, der sich per Rotation ohne Verlust wechseln lässt. - Tokens, gehasht gespeichert
- Kommandozeilenwerkzeuge authentifizieren sich mit einem API-Token, das der Server nicht zurücklesen kann. Die Tokens, die Docker nach
docker loginerhält, gelten 2 Minuten. - Begrenzter Arbeitsspeicher
- Docker-Blobs gehen beim Eintreffen direkt auf die Festplatte. Im Arbeitsspeicher gehaltene Dokumente schöpfen aus einem Budget von 1 GiB, und ein Client hat höchstens vier Anfragekörper gleichzeitig in Arbeit.
- Ein Budget für anonymen Verkehr
- Öffentliche Seiten, die öffentliche API und npm- und Docker-Lesezugriffe haben ein Budget pro Client und Minute, zwischen Replikas geteilt. Die Datenbank erhält nur Fingerabdrücke, nie eine Adresse.
- Audit- und Sicherheitsprotokolle
- Standardmäßig 365 Tage aufbewahrt. Anmeldungen, verweigerte Zugriffe und administrative Aktionen werden dort festgehalten.
- Kontrollierte ausgehende Verbindungen
- LDAP, SMTP, OIDC und Proxys erreichen keine private Adresse, außer den von Ihnen erlaubten Bereichen. Ein Proxy sendet seine Zugangsdaten nur an die konfigurierte Upstream-Registry, über
https. - Ihre Daten, auf Ihrem Server
- PostgreSQL und ein Volume, beide von Ihnen zu sichern. Mit dem Helm-Chart läuft der Pod ohne Privilegien, auf einem schreibgeschützten Dateisystem.
Testen Sie ArtiFerris, dann betreiben Sie Ihre eigene Instanz.
Die öffentliche Instanz dient zum Kennenlernen. Ihre eigene Instanz verwahrt Ihre Pakete.
git clone https://github.com/Masmarino/ArtiFerris.git
cd ArtiFerris
cp .env.example .env
# set POSTGRES_PASSWORD, JWT_SECRET, SECRETS_ENCRYPTION_KEY, PUBLIC_URL and the first admin in .env
docker compose up -d --build