Linux offline implementatie
Dit artikel leidt je door de procedure voor het installeren en implementeren van Bitwarden op je eigen server in een offline of air-gapped omgeving. Raadpleeg de documentatie voor ondersteuning bij het uitbrengen van Bitwarden software.
warning
Handmatige installaties mogen alleen worden uitgevoerd door gevorderde gebruikers. Ga alleen verder als u goed bekend bent met Docker-technologieën en meer controle wilt over uw Bitwarden-installatie.
Handmatige installaties hebben niet de mogelijkheid om bepaalde afhankelijkheden van de Bitwarden-installatie automatisch bij te werken. Bij het upgraden van de ene versie van Bitwarden naar de volgende bent u verantwoordelijk voor wijzigingen in vereiste omgevingsvariabelen, wijzigingen in nginx default.conf, wijzigingen in docker-compose.yml, enzovoort.
We zullen proberen deze te benadrukken in de release notes op GitHub. Je kunt ook wijzigingen in de afhankelijkheidssjablonen die worden gebruikt door het installatiescript van Bitwarden volgen op GitHub.
Controleer voordat u verdergaat met de installatie of aan de volgende vereisten is voldaan:
Docker Engine en Docker Compose zijn geïnstalleerd en klaar voor gebruik op je server.
Op een machine met internetverbinding heb je het nieuwste
docker-stub.zip-bestandgedownload van de Bitwarden Server repository's releases pagina en dit bestand overgezet naar je server.Er is een offline SMTP-server ingesteld en actief in uw omgeving.
note
Bitwarden wordt momenteel alleen ondersteund in een Docker- en Docker Compose-omgeving. De installatiescrips en handmatige installatie-artefacten van Bitwarden converteren niet nauwkeurig naar Kubernetes manifesten zonder uitgebreide kennis van de Bitwarden-stack en Kubernetes. Automatische conversies van de installatie-artefacten worden op dit moment niet aanbevolen en kunnen resulteren in een kapotte implementatie-omgeving.
Minimaal | Aanbevolen | |
|---|---|---|
Processor | x64, 1,4GHz | x64, 2GHz dual core |
Geheugen | 2GB RAM | 4 GB RAM |
Opslag | 12 GB | 25 GB |
Docker-versie | Engine 19+ en Compose 1.24+ | Engine 19+ en Compose 1.24+ |
Standaard wordt Bitwarden aangeboden via de poorten 80(http) en 443(https) op de hostmachine. Open deze poorten zodat Bitwarden toegankelijk is van binnen en/of buiten het netwerk. Je kunt ervoor kiezen om andere poorten te kiezen tijdens de installatie.
We raden aan een domeinnaam te configureren met DNS-records die verwijzen naar uw hostmachine (bijvoorbeeld bitwarden.example.com), vooral als u Bitwarden via internet aanbiedt.
We raden u aan uw server te configureren met een specifiek bitwarden-serviceaccount van waaruit Bitwarden wordt geïnstalleerd en uitgevoerd. Hierdoor wordt uw Bitwarden-instantie geïsoleerd van andere toepassingen die op uw server draaien.
Deze stappen zijn door Bitwarden aanbevolen best practices, maar zijn niet verplicht. Voor meer informatie, zie Docker's post-installatie stappen voor Linux documentatie.
Maak een bitwarden-gebruiker aan:
Bashsudo adduser bitwardenStel een wachtwoord in voor de bitwarden gebruiker:
Bashsudo passwd bitwardenMaak een docker groep aan (als die nog niet bestaat):
Bashsudo groupadd dockerVoeg de bitwarden gebruiker toe aan de docker groep:
Bashsudo usermod -aG docker bitwardenMaak een bitwardenmap:
Bashsudo mkdir /opt/bitwardenStel rechten in voor de map
/opt/bitwarden:Bashsudo chmod -R 700 /opt/bitwardenDe bitwarden gebruiker eigenaar maken van de
/opt/bitwardendirectory:Bashsudo chown -R bitwarden:bitwarden /opt/bitwarden
warning
Als u een Bitwarden-gebruiker en -map hebt gemaakt, voert u het volgende uit als de bitwarden-gebruiker vanuit de map /opt/bitwarden. Installeer Bitwarden niet als root, want dan krijg je problemen tijdens de installatie.
Om uw machine te configureren met de middelen die nodig zijn voor uw Bitwarden-server:
Maak een nieuwe map met de naam
bwdataen pak daar bijvoorbeelddocker-stub.zipnaar uit:Bashunzip docker-stub-US.zip -d bwdataEenmaal uitgepakt zal de map
bwdataovereenkomen met wat de volumetoewijzing van hetdocker-compose.yml-bestandverwacht. U kunt, indien gewenst, de locatie van deze toewijzingen op de hostmachine wijzigen.Bewerk in
./bwdata/env/global.override.envde volgende omgevingsvariabelen:globalSettings__baseServiceUri__vault=: Voer het domein van uw Bitwarden-instantie in.globalSettings__sqlServer__ConnectionString=: Vervang hetRANDOM_DATABASE_PASSWORDdoor een veilig wachtwoord voor gebruik in een latere stap.globalSettings__identityServer__certificatePassword: Stel een veilig certificaatwachtwoord in voor gebruik in een latere stap.globalSettings__internalIdentityKey=: VervangRANDOM_IDENTITY_KEYdoor een willekeurige sleutelreeks.globalSettings__oidcIdentityClientKey=: VervangRANDOM_IDENTITY_KEYdoor een willekeurige sleuteltekenreeks.globalSettings__duo__aKey=: VervangRANDOM_DUO_AKEYdoor een willekeurige sleuteltekenreeks.globalSettings__installation__id=: Voer een installatie-id in die is opgehaald van https://bitwarden.com/host.globalSettings__installation__key=: Voer een installatiesleutel in die is opgehaald van https://bitwarden.com/host.globalSettings__pushRelayBaseUri=: Deze variabele moet leeg zijn. Zie Push Relay configureren voor meer informatie.tip
Overweeg op dit moment ook om waarden in te stellen voor alle
globalSettings__mail__smtp__variabelen en vooradminSettings__admins. Hierdoor wordt de SMTP-mailserver geconfigureerd die wordt gebruikt om uitnodigingen naar nieuwe organisatieleden te sturen en toegang te verlenen tot het systeembeheerdersportaal.
Genereer vanuit
./bwdataeen.pfx-certificaatbestandvoor de identity container en verplaats het naar de map van het gemapte volume (standaard./bwdata/identity/). Voer bijvoorbeeld de volgende commando's uit:Bashopenssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout identity.key -out identity.crt -subj "/CN=Bitwarden IdentityServer" -days 10950en
Bashopenssl pkcs12 -export -out ./identity/identity.pfx -inkey identity.key -in identity.crt -passout pass:IDENTITY_CERT_PASSWORDVervang in het bovenstaande commando
IDENTITY_CERT_PASSWORDdoor het certificaatwachtwoord dat in stap 2 is aangemaakt en gebruikt.Kopieer
identity.pfxnaar de map./bwdata/ssl.Maak een submap in
./bwdata/sslmet bijvoorbeeld de naam van je domein:Bashmkdir ./ssl/bitwarden.example.comZorg voor een vertrouwd SSL-certificaat en een privésleutel in de nieuw aangemaakte submap
./bwdata/ssl/bitwarden.example.com.note
Deze map is gekoppeld aan de NGINX container in
/etc/ssl. Als u geen vertrouwd SSL-certificaat kunt leveren, sluit de installatie dan af met een proxy die een HTTPS-eindpunt biedt aan Bitwarden-clienttoepassingen.In
./bwdata/nginx/default.conf:Vervang alle instanties van
bitwarden.example.comdoor jouw domein, ook in de headerContent-Security-Policy.Stel de variabelen
ssl_certificateenssl_certificate_keyin op de paden van het certificaat en de privésleutel uit stap 6.Neem een van de volgende acties, afhankelijk van uw certificaatinstelling:
Als u een vertrouwd SSL-certificaat gebruikt, stel dan de variabele
ssl_trusted_certificatein op het pad naar uw certificaat.Als u een zelfondertekend certificaat gebruikt, moet u de variabele
ssl_trusted_certificateuitcommentariëren.
Vervang in
./bwdata/env/mssql.override.envRANDOM_DATABASE_PASSWORDdoor het wachtwoord dat in stap 2 is gemaakt.Vervang
bitwarden.example.comin./bwdata/web/app-id.jsondoor jouw domein.Stel in
./bwdata/env/uid.envde UID en GID in van debitwardengebruikers en groep die u eerder hebt aangemaakt, zodat de containers bijvoorbeeld onder hen draaien:BashLOCAL_UID=1001 LOCAL_GID=1001
Om docker images te krijgen voor gebruik op je offline machine:
Download vanaf een machine met internetverbinding alle
bitwarden/xxx:latestdocker images, zoals vermeld in hetdocker-compose.ymlbestand indocker-stub.zip.Sla elke afbeelding bijvoorbeeld op in een
.img-bestand:Bashdocker image save -o mssql.img ghcr.io/bitwarden/mssql:latestZet alle
.img-bestandenover naar je offline machine.Laad op je offline machine elk
.imgbestand om bijvoorbeeld je lokale docker images te maken:Bashdocker image load -i mssql.img
Start uw Bitwarden-server met het volgende commando:
Bashdocker compose -f ./docker/docker-compose.yml up -d
Controleer of alle containers correct draaien:
Bashdocker ps

Gefeliciteerd! Bitwarden is nu actief op https://your.domain.com. Bezoek de webkluis in je browser om te controleren of deze werkt.
Je kunt nu een nieuwe account registreren en inloggen. U moet SMTP-omgevingsvariabelen hebben geconfigureerd (zie omgevingsvariabelen) om de e-mail voor uw nieuwe account te kunnen verifiëren.
Als u van plan bent om zelf een Bitwarden-organisatie te hosten, zie dan Zelf een organisatie hosten om te beginnen.
Zie voor meer informatie de veelgestelde vragen over zelf hosten.
Het bijwerken van een zelf gehoste server die handmatig is geïnstalleerd en uitgerold, is anders dan de standaard updateprocedure. Om je handmatig geïnstalleerde server bij te werken:
Download het nieuwste
docker-stub.ziparchief van de releases pagina's op GitHub.Pak het nieuwe
docker-stub.ziparchief uit en vergelijk de inhoud met wat er momenteel in jebwdatamap staat. Kopieer alles wat nieuw is naar de reeds bestaande bestanden inbwdata.
Overschrijf uw reeds bestaande bwdata directorynietmet de inhoud van het nieuweredocker-stub.ziparchief, aangezien dit al het aangepaste configuratiewerk dat u hebt gedaan zou overschrijven.Download de nieuwste container images en zet ze over naar je offline machine zoals hierboven beschreven.
Voer het volgende commando uit om je server opnieuw te starten met je bijgewerkte configuratie en de nieuwste containers:
Bashdocker compose -f ./docker/docker-compose.yml down && docker compose -f ./docker/docker-compose.yml up -d