Tropic Host

Vaultwarden. ինչ է այն և ինչպես տեղադրել VPS-ում

2 րոպե կարդալ
Tropic
Vaultwarden. ինչ է այն և ինչպես տեղադրել VPS-ում

Language: hy

Vaultwarden. սեփական գաղտնաբառերի կառավարչի տեղադրումը VPS-ում

Vaultwarden-ը թույլ է տալիս գաղտնաբառերը պահել սեփական սերվերում և համաժամացնել դրանք համակարգչի, հեռախոսի ու բրաուզերի միջև։ Այն աշխատում է Bitwarden-ի պաշտոնական հավելվածների և ընդլայնումների հետ. դրանցում պարզապես նշում եք ձեր սեփական սերվերի հասցեն։

Ստորև կքննարկենք, թե ինչ VPS է պետք Vaultwarden-ին, ինչպես այն գործարկել Ubuntu-ում Docker Compose-ի միջոցով, անջատել բաց գրանցումը, միացնել HTTPS-ը և կարգավորել պահուստավորումը։

Vaultwarden-ը հինգ քայլով

Նվազագույն գործարկման ծրագիրը հետևյալն է.

  1. Ստեղծեք Ubuntu-ով VPS և ենթադոմենը ուղղեք դեպի այն, օրինակ՝ vault.example.com։
  2. Տեղադրեք Docker-ը և Docker Compose-ը։
  3. Գործարկեք Vaultwarden-ը Caddy-ի հետ միասին՝ ավտոմատ HTTPS-ի համար։
  4. Ստեղծեք առաջին հաշիվը և անջատեք բաց գրանցումը։
  5. Միացրեք երկփուլ նույնականացումը, թարմացումները և պահուստավորումը։

Անձնական պահոցի կամ փոքր ընտանիքի համար ներկառուցված SQLite տվյալների բազան բավարար է։ Առանձին PostgreSQL սերվերը սովորաբար անհրաժեշտ չէ։

Ի՞նչ է Vaultwarden-ը

Vaultwarden-ը Bitwarden API-ի ոչ պաշտոնական սերվերային իրականացում է՝ գրված Rust-ով և նախատեսված ինքնուրույն հոսթինգի համար։ Այն համատեղելի է Bitwarden-ի պաշտոնական հաճախորդների հետ՝ վեբ ինտերֆեյսի, բջջային և աշխատասեղանի հավելվածների, բրաուզերի ընդլայնումների և CLI-ի։

Պահոցի տվյալները օգտատիրոջ սարքում գաղտնագրվում են սերվեր ուղարկվելուց առաջ։ VPS-ը համաժամացնում է գաղտնագրված տվյալների բազան, սակայն չի իմանում հիմնական գաղտնաբառը և կորցնելու դեպքում չի կարող վերականգնել այն։

Vaultwarden-ը Bitwarden-ի պաշտոնական արտադրանքը չէ։ Սեփականատերն անձամբ պատասխանատու է թարմացումների, հասանելիության, HTTPS-ի, պահուստների և VPS-ի անվտանգության համար։

Vaultwarden և Bitwarden. ո՞րն է տարբերությունը

ՊարամետրBitwarden CloudVaultwarden
ՍերվերBitwarden-ի ենթակառուցվածքՁեր VPS-ը կամ տնային սերվերը
ՀավելվածներBitwarden-ի հաճախորդներՆույն հաճախորդները Self-hosted ռեժիմում
ՍպասարկումԿատարում է մատակարարըԿատարում է սեփականատերը
Պահուստների վերահսկումՍահմանափակված է ծառայությամբԱմբողջական
ԿարգավորումՀաշվի գրանցումԴոմեն, Docker և VPS-ի կարգավորում

Vaultwarden-ը հարմար է նրանց համար, ովքեր ցանկանում են վերահսկել սերվերային մասը և պատրաստ են թարմացնել Linux-ը ու ստուգել պահուստները։ Ամպային ծառայությունն ավելի գործնական է, եթե չեք ցանկանում զբաղվել ադմինիստրացիայով։ Ինքնուրույն հոսթինգը համակարգը ավտոմատ անվտանգ չի դարձնում. այն պատասխանատվությունը փոխանցում է սեփականատիրոջը։

Vaultwarden սերվերի պահանջները

Անձնական օգտագործման համար ողջամիտ մեկնարկային կազմաձևը հետևյալն է.

  • 1 vCPU,
  • 1–2 ԳԲ RAM,
  • 10–20 ԳԲ SSD կամ NVMe,
  • Ubuntu 24.04 LTS,
  • հանրային IP հասցե և դոմեն,
  • բաց 80 և 443 պորտեր։

Սա Ubuntu-ի, Docker-ի, Caddy-ի և թարմացումների համար գործնական պահուստ է, ոչ թե նախագծի խիստ նվազագույն պահանջը։ Տասնյակ օգտատերերի, մեծ թվով կցորդների կամ մի քանի կոնտեյներների դեպքում ավելի լավ է ընտրել առնվազն 2 ԳԲ RAM։

Ինչպես տեղադրել Vaultwarden-ը VPS-ում

Այս օրինակում օգտագործվում են Ubuntu 24.04-ը և vault.example.com ենթադոմենը։ Բոլոր ֆայլերում այն փոխարինեք ձեր հասցեով։

1. Կարգավորեք DNS-ը և պատրաստեք Ubuntu-ն

Ստեղծեք A DNS գրառում, որը կհղվի VPS-ի IPv4 հասցեին։ Այնուհետև միացեք SSH-ով.

ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Մի փակեք գործող SSH նիստը, քանի դեռ չեք ստուգել, որ նոր միացումը աշխատում է։

2. Տեղադրեք Docker-ը և Docker Compose-ը

Ավելացրեք Docker-ի պաշտոնական պահոցը.

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

3. Ստեղծեք կազմաձևը

mkdir -p /opt/vaultwarden
cd /opt/vaultwarden

Ստեղծեք compose.yaml.

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2-alpine
    container_name: vaultwarden-caddy
    restart: unless-stopped
    depends_on:
      - vaultwarden
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config

Ստեղծեք Caddyfile.

vault.example.com {
    reverse_proxy vaultwarden:80
}

Դրսից հասանելի է միայն Caddy-ն։ Vaultwarden-ի կոնտեյները հասանելի է Docker ցանցի ներսում, իսկ տվյալները պահվում են /opt/vaultwarden/vw-data-ում։ Ներկա կարգավորման դեպքում առանձին WebSocket պորտ պետք չէ։

4. Գործարկեք Vaultwarden-ը

docker compose up -d
docker compose ps
docker compose logs --tail=100 caddy

Բացեք https://vault.example.com։ Եթե DNS-ն արդեն ուղղված է VPS-ին, իսկ 80 և 443 պորտերը հասանելի են, Caddy-ն ինքնաշխատ կստանա TLS վկայական։ Եթե կայքը չի բացվում, ստուգեք DNS-ը, firewall-ը և արդյոք մեկ այլ վեբ սերվեր չի օգտագործում այդ պորտերը։

5. Ստեղծեք հաշիվ և անջատեք գրանցումը

Գրանցեք առաջին հաշիվը։ Օգտագործեք երկար և եզակի հիմնական գաղտնաբառ, իսկ Vaultwarden-ից դուրս պահեք արտակարգ պատճենը. սերվերի ադմինիստրատորը չի կարող վերականգնել կամ փոխել հիմնական գաղտնաբառը։

Գրանցվելուց հետո compose.yaml-ում փոխեք հետևյալը.

SIGNUPS_ALLOWED: "false"

Կիրառեք կարգավորումը.

docker compose up -d

Այժմ այլ մարդիկ չեն կարողանա հաշիվներ ստեղծել։ Նոր օգտատիրոջը ավելացնելու համար կարող եք ժամանակավորապես միացնել գրանցումը կամ կարգավորել հրավերներ։

Ինչպես միացնել Bitwarden հավելվածը

Առանձին Vaultwarden հաճախորդ տեղադրելու կարիք չկա։ Bitwarden հավելվածի կամ ընդլայնման մուտքի էկրանին ընտրեք Self-hosted և մուտքագրեք.

https://vault.example.com

Այս հասցեն օգտագործեք համակարգչում, հեռախոսում և բրաուզերում։ Տեղափոխման համար ներմուծեք նախկին գաղտնաբառերի կառավարիչից ստացված արտահանումը։ Փոխանցումից անմիջապես հետո ջնջեք չգաղտնագրված CSV կամ JSON ֆայլը և այն մի ուղարկեք էլեկտրոնային փոստով կամ հանրային հղումներով։

Vaultwarden-ի անվտանգ կազմաձևում

Գործարկումից հետո կատարեք մի քանի քայլ.

  • միացրեք TOTP-ը կամ WebAuthn-ը և վերականգնման կոդերը պահեք առանձին,
  • SIGNUPS_ALLOWED-ը թողեք անջատված,
  • օգտագործեք SSH բանալիներ և պարբերաբար թարմացրեք Ubuntu-ն,
  • մի բացեք Vaultwarden կոնտեյների ներքին պորտը,
  • նույն VPS-ում մի գործարկեք կասկածելի կոնտեյներներ,
  • ստուգեք, որ պահուստներից հնարավոր է վերականգնում կատարել։

/admin վահանակը սովորաբար պետք չէ անձնական պահոցի համար։ Եթե միացնում եք այն, օգտագործեք Argon2 հեշի ձևաչափով երկար թոքեն և հնարավորության դեպքում սահմանափակեք հասանելիությունը IP հասցեով կամ VPN-ով։ Պարզ տեքստով ADMIN_TOKEN պահելը ցանկալի չէ։

Թարմացումից առաջ ստեղծեք պահուստ, ապա գործարկեք.

cd /opt/vaultwarden
docker compose pull
docker compose up -d

Սերվերը պետք է պարբերաբար թարմացվի. Bitwarden-ի հաճախորդները թողարկվում են անկախ, ուստի Vaultwarden-ի շատ հին տարբերակը կարող է կորցնել դրանց հետ համատեղելիությունը։

Vaultwarden-ի պահուստավորում

Հիմնական SQLite տվյալների բազան գտնվում է vw-data/db.sqlite3 հասցեում, իսկ կցորդները պահվում են առանձին ֆայլերով։ Մի պատճենեք գործող տվյալների բազան սովորական cp հրամանով. այդ պահին կատարվող գրառումը կարող է պատճենը դարձնել անհամապատասխան։

Ներկառուցված հրամանով ստեղծեք անվտանգ snapshot.

docker exec vaultwarden /vaultwarden backup

Տվյալների թղթապանակում կհայտնվի առանձին db_.sqlite3 ֆայլ։ Դրա հետ միասին պահպանեք attachments, sends, ստեղծված լինելու դեպքում config.json, ինչպես նաև rsa_key ֆայլերը։

Նույն VPS-ում պահվող պահուստը չի պաշտպանում սերվերի ջնջումից կամ սկավառակի խափանումից։ Պատճեններն ավտոմատ ուղարկեք մեկ այլ սարք կամ առանձին օբյեկտային պահեստ, ցանկալի է՝ լրացուցիչ գաղտնագրմամբ։ Պարբերաբար կատարեք փորձնական վերականգնում։

Ո՞ր VPS-ն ընտրել Vaultwarden-ի համար

2 ԳԲ RAM-ով հիմնական Linux VPS-ը բավարար է անձնական կամ ընտանեկան պահոցի համար։ Այդպիսի կազմաձևը լրացուցիչ տեղ է թողնում համակարգի, Docker-ի, Caddy-ի, թարմացումների և ավտոմատ պահուստների համար։

Vaultwarden-ը կարող եք գործարկել tropic.host-ի սկզբնական մակարդակի VPS-ում և հետագայում ավելացնել ռեսուրսները, եթե սերվերին այլ ինքնուրույն հոսթինգով ծառայություններ էլ ավելացնեք։ Գաղտնաբառերի կառավարչի համար կայուն ցանցը, մշտական հանրային հասցեն և հուսալի սկավառակն ավելի կարևոր են, քան լրացուցիչ CPU միջուկները։

Տնային սերվերը նույնպես հարմար է, սակայն այդ դեպքում պետք է ապահովեք արտաքին հասանելիությունը, HTTPS-ը, կայուն սնուցումը և խափանումներից հետո վերականգնումը։ VPS-ը սովորաբար ավելի պարզ է, երբ պահոցը պետք է աշխատի ցանկացած ցանցից։

Եզրակացություն

Vaultwarden-ը հարմար ինքնուրույն հոսթինգով գաղտնաբառերի կառավարիչ է նրանց համար, ովքեր ցանկանում են օգտագործել Bitwarden-ի հաճախորդները՝ սերվերային մասը պահելով սեփական ենթակառուցվածքում։ Սկսելու համար բավական են փոքր VPS-ը, դոմենը, Docker Compose-ը և Caddy-ն։

Հիմնական պատասխանատվությունը սկսվում է տեղադրումից հետո. անջատեք գրանցումը, միացրեք 2FA-ն, թարմացրեք կոնտեյներները և պահեք փորձարկված պահուստները սերվերից դուրս։

FAQ

Հնարավո՞ր է Vaultwarden-ը տեղադրել առանց դոմենի

Տեխնիկապես կարելի է օգտագործել տեղական հասցե, սակայն վեբ պահոցին անհրաժեշտ է անվտանգ HTTPS միջավայր։ Տարբեր սարքերից հասանելիության համար դոմենն ու TLS վկայականը ավելի պարզ լուծում են։

Որքա՞ն RAM է պետք Vaultwarden-ին

Մեկ կամ մի քանի օգտատերերի համար սովորաբար բավական է 1 ԳԲ RAM-ը։ 2 ԳԲ-ով VPS-ը ավելի հարմար պահուստ է համակարգի, Docker-ի, Caddy-ի և թարմացումների համար։

Vaultwarden-ն աշխատո՞ւմ է Bitwarden-ի բջջային հավելվածի հետ

Այո։ Մուտքի էկրանին ընտրեք ինքնուրույն հոսթինգով սերվեր և մուտքագրեք Vaultwarden-ի ամբողջական HTTPS հասցեն։

Ի՞նչ է տեղի ունենում, եթե VPS-ը ժամանակավորապես անհասանելի է

Նախկինում համաժամացված տվյալները սովորաբար մնում են հաճախորդի տեղական գաղտնագրված քեշում։ Սակայն համաժամացումը, նոր սարքում մուտք գործելը և փոփոխություններ ստանալը չեն աշխատի, քանի դեռ սերվերը չի վերականգնվել։

Հնարավո՞ր է մոռացված հիմնական գաղտնաբառը վերականգնել /admin-ի միջոցով

Ոչ։ Ադմինիստրատորը կարող է կառավարել սերվերն ու հաշիվները, բայց չունի օգտատիրոջ պահոցի վերծանման բանալին։ Հիմնական գաղտնաբառն ու վերականգնման կոդերը պետք է պահել առանձին։