Specus

P—02 — ProdottoBeta

Un piano di controllo self-hosted e PaaS. Adotta i server che già possiedi piuttosto che affittare quelli di qualcun altro.

01 — Che cos'è

just.locker è un piano di controllo self-hosted e PaaS. Gestisce i server che già possiedi invece di affittarti i server di qualcun altro. Le macchine, gli account dei provider e i domini rimangono tuoi e il piano di controllo viene eseguito sopra di essi.

02 — Adozione del server

01

Configurazione del server su SSH

Imposta una nuova macchina da qualsiasi provider tramite SSH.

02

La propria chiave

Genera la propria chiave ed25519, la installa e disabilita l'autenticazione tramite password.

03

Protetto fin dal primo momento

Rafforza la sicurezza del server con ufw, fail2ban, unattended-upgrades e Docker.

04

Credenziali nel vault

Ogni credenziale generata durante la configurazione del server viene archiviata nel vault.

03 — Dispiegamenti

01

Fonti

Collegare un Git remoto o un'immagine OCI esistente. Crea tramite Dockerfile, Compose, Railpack, Nixpacks o il percorso statico.

02

Distribuzione automatica su push

Attraverso webhook verificati da HMAC, con un fallback git-poll quando un webhook non può raggiungere il piano di controllo.

03

Utilizzare il contenitore

Registri di compilazione in tempo reale, rollback con un clic, avvio, arresto e riavvio del contenitore, registri del contenitore ed esecuzione dei comandi, oltre a un terminale interattivo.

04

Build indipendenti dall’API

Le compilazioni vengono eseguite in modo indipendente in modo che continuino dopo un riavvio dell'API. Il worker si riconnette quindi alla build in esecuzione.

04 — Esposizione e networking

01

Ingresso

Traefik per dominio con Let’s Encrypt o Cloudflare Tunnel.

La versione gestita di Traefik è fissata dal suo digest. Utilizza un proxy API Docker filtrato e di sola lettura invece dell'accesso diretto al socket.

02

VPN

WireGuard multi-tenant con criteri di negazione predefiniti per utente, ruolo e risorsa del progetto e VIP delle applicazioni private.

Una modalità ibrida mantiene l'ingresso pubblico accanto all'accesso solo VPN.

05 — Backup e ripristino

01

Di cosa viene eseguito il backup

Backup pianificati dei volumi Docker ed esportazioni logiche dei database, cifrati con age e accompagnati da un manifest deterministico autenticato.

02

Dove va

I backup vanno su uno Storage Box montato o su uno storage compatibile con S3. Le credenziali rimangono limitate al vault. Solo i file di backup crittografati lasciano il server.

03

Sostituire il server

Ripristina i database e i volumi, quindi ridistribuisce la versione immutabile registrata.

06 — La mia vita

Un vault AES-256-GCM con un ACL per ogni segreto. I segreti classificati come credenziali sensibili possono essere rivelati solo da un superadmin, con un motivo esplicito.

07 — Fatturazione

01

I tuoi conti

Clienti, servizi ricorrenti e fatture, con una vista MRR.

02

I progetti che implementi

Fatturazione SaaS con prodotti e prezzi neutrali rispetto al provider, checkout in hosting, abbonamenti, rimborsi e diritti, tramite Stripe Connect o Paddle.

08 — La continuità

01

Aggiornamenti automatici

Gli auto-aggiornamenti sono firmati con ECDSA e corretti da digest. Richiedono controlli di preflight, un backup del database e un controllo dello stato, con rollback automatico.

02

Migrazione da Coolify

La migrazione avviene in due fasi: prima viene normalizzata l’installazione Coolify esistente, poi si passa al nuovo sistema.

09 — Limiti correnti

Limite 01

Solo progetti greenfield

La produzione con dati critici richiede un test canary rappresentativo, un periodo prolungato di osservazione, RPO e RTO concordati e prove periodiche di ripristino.

Limite 02

Nessuna compilazione dal sorgente

Le compilazioni dal codice sorgente vengono rifiutate finché non è disponibile un costruttore temporaneo senza privilegi di root. Le immagini sono quindi fornite pre-costruite.

10 — Pile

  • .NET 10
  • Angular 22
  • ASP.NET Core BFF with YARP
  • Flutter
  • PostgreSQL
  • Redis

Domande su just.locker? Scrivici.