summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Richter2018-07-12 01:23:01 +0200
committerMarkus Richter2018-07-12 01:23:01 +0200
commit7c6fbbfcc7f060a7419c52916204ca431c673949 (patch)
tree02a881d9e3cc6525a64ab8f87603bd389b79ba25
downloadaur-7c6fbbfcc7f060a7419c52916204ca431c673949.tar.gz
initial commit
-rw-r--r--.SRCINFO34
-rw-r--r--0001-Change-vault-paths.patch14
-rw-r--r--PKGBUILD71
-rw-r--r--bitwarden_rs-vault.env23
-rw-r--r--bitwarden_rs.install44
-rw-r--r--bitwarden_rs.service22
6 files changed, 208 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..5b24d358ec13
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,34 @@
+pkgbase = bitwarden_rs-vault-git
+ pkgdesc = A lightweight implementation of the bitwarden-server using rust and sqlite. Includes the web-interface 'vault'.
+ pkgver = r161.869352c
+ pkgrel = 1
+ url = https://github.com/dani-garcia/bitwarden_rs
+ install = bitwarden_rs.install
+ arch = i686
+ arch = x86_64
+ arch = armv7h
+ arch = aarch64
+ license = GPLv3
+ makedepends = rust-nightly
+ makedepends = cargo-nightly
+ makedepends = npm
+ provides = bitwarden_rs
+ provides = bitwarden_rs-vault
+ conflicts = bitwarden_rs
+ conflicts = bitwarden_rs-git
+ conflicts = bitwarden_rs-vault
+ source = git+https://github.com/dani-garcia/bitwarden_rs.git
+ source = https://github.com/bitwarden/web/archive/v1.27.0.tar.gz
+ source = 0001-Change-vault-paths.patch
+ source = bitwarden_rs.install
+ source = bitwarden_rs-vault.env
+ source = bitwarden_rs.service
+ sha512sums = SKIP
+ sha512sums = 493588b8ec965775d0bcb58e5830d6c523131858957d5656d0480edcc93a45860606d190f0d0847ce529f43911efad4af7ca8bd2b0f21d12c05da333dcb1b4d5
+ sha512sums = c2c8971abc23d874d8f822f59f1543c3f3a5bba106b146ec2065256c77209857e5915281de1b93efe8b937a1c172592e0c20b8ac1b50bf323eb54014b097156c
+ sha512sums = ea6ac7d915887078d7e091b99d53f2ee6fbf11ad5a80e04309263e7b06ce43de6e90e69ad62e3c99eaf81f825aebe930bf45888041225a156d74f324dfa10578
+ sha512sums = b41fd790ca2432030dc68608e9c96288077ccb5fbbf28c6b54ed03670583a04082be1a6cf4e1efe9f59fd831bc6b841631de96bdafb5aa732760d698ebf72468
+ sha512sums = 773dc0830b4eaf3a1d4134a52a6157e6a94265c6212ae8cc24b9584f9c444b9a0f822325f487ce9c23c363f743f1f64f269352f030e98e336816aee0a68048f6
+
+pkgname = bitwarden_rs-vault-git
+
diff --git a/0001-Change-vault-paths.patch b/0001-Change-vault-paths.patch
new file mode 100644
index 000000000000..145362c937a5
--- /dev/null
+++ b/0001-Change-vault-paths.patch
@@ -0,0 +1,14 @@
+--- settings.Production.json 2018-05-31 20:33:00.000000000 +0200
++++ settings.Production.json 2018-07-11 23:39:12.479350252 +0200
+@@ -2,8 +2,8 @@
+ "appSettings": {
+ "apiUri": "/api",
+ "identityUri": "/identity",
+- "iconsUri": "https://icons.bitwarden.com",
+- "stripeKey": "pk_live_bpN0P37nMxrMQkcaHXtAybJk",
+- "braintreeKey": "production_qfbsv8kc_njj2zjtyngtjmbjd"
++ "iconsUri": "/icons",
++ "stripeKey": "",
++ "braintreeKey": ""
+ }
+ }
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..5db76a5d9205
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,71 @@
+# Maintainer: Markus Richter <mqus at disroot dot org>
+
+pkgname=bitwarden_rs-vault-git
+_pkgbase=bitwarden_rs
+pkgver=r161.869352c
+_vaultver=1.27.0
+pkgrel=1
+pkgdesc="A lightweight implementation of the bitwarden-server using rust and sqlite. Includes the web-interface 'vault'."
+arch=('i686' 'x86_64' 'armv7h' 'aarch64')
+url="https://github.com/dani-garcia/bitwarden_rs"
+license=('GPLv3')
+groups=()
+makedepends=('rust-nightly' 'cargo-nightly' 'npm')
+provides=("$_pkgbase" "${_pkgbase}-vault")
+conflicts=("$_pkgbase" "${_pkgbase}-git" "${_pkgbase}-vault")
+replaces=()
+backup=()
+options=()
+install=bitwarden_rs.install
+source=('git+https://github.com/dani-garcia/bitwarden_rs.git'
+ "https://github.com/bitwarden/web/archive/v$_vaultver.tar.gz"
+ "0001-Change-vault-paths.patch"
+ "${_pkgbase}.install"
+ "${_pkgbase}-vault.env"
+ "${_pkgbase}.service")
+noextract=()
+sha512sums=('SKIP'
+ '493588b8ec965775d0bcb58e5830d6c523131858957d5656d0480edcc93a45860606d190f0d0847ce529f43911efad4af7ca8bd2b0f21d12c05da333dcb1b4d5'
+ 'c2c8971abc23d874d8f822f59f1543c3f3a5bba106b146ec2065256c77209857e5915281de1b93efe8b937a1c172592e0c20b8ac1b50bf323eb54014b097156c'
+ 'ea6ac7d915887078d7e091b99d53f2ee6fbf11ad5a80e04309263e7b06ce43de6e90e69ad62e3c99eaf81f825aebe930bf45888041225a156d74f324dfa10578'
+ 'b41fd790ca2432030dc68608e9c96288077ccb5fbbf28c6b54ed03670583a04082be1a6cf4e1efe9f59fd831bc6b841631de96bdafb5aa732760d698ebf72468'
+ '773dc0830b4eaf3a1d4134a52a6157e6a94265c6212ae8cc24b9584f9c444b9a0f822325f487ce9c23c363f743f1f64f269352f030e98e336816aee0a68048f6')
+
+
+pkgver() {
+ cd "$srcdir/$_pkgbase"
+ ( set -o pipefail
+ git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' ||
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+ )
+}
+prepare() {
+ cd "$srcdir/web-$_vaultver"
+ #fix gulp install
+ rm package-lock.json
+ #patch all
+ patch -N -i "$srcdir/0001-Change-vault-paths.patch"
+}
+
+build() {
+ #build bitwarden_rs
+ cd "$srcdir/$_pkgbase"
+ cargo build --release
+
+ #build vault webinterface
+ cd "$srcdir/web-$_vaultver"
+ npm install
+ npx gulp dist:selfHosted
+}
+
+package() {
+ # setup systemd service
+ install -D -m 0644 "$srcdir/bitwarden_rs.service" "$pkgdir/usr/lib/systemd/system/bitwarden_rs.service"
+ # copy default config file
+ install -D -m 0644 "$srcdir/bitwarden_rs-vault.env" "$pkgdir/etc/bitwarden_rs.env"
+ # install vault files
+ install -d "$pkgdir/usr/share/bitwarden_rs"
+ cp -r "$srcdir/web-$_vaultver/dist" "$pkgdir/usr/share/bitwarden_rs/vault"
+ # copy binary
+ install -D -m0755 "$srcdir/$_pkgbase/target/release/bitwarden_rs" "$pkgdir/usr/bin/bitwarden_rs"
+}
diff --git a/bitwarden_rs-vault.env b/bitwarden_rs-vault.env
new file mode 100644
index 000000000000..282504e05449
--- /dev/null
+++ b/bitwarden_rs-vault.env
@@ -0,0 +1,23 @@
+# Environment-variables to configure bitwarden_rs
+
+# --- Bitwarden config
+
+# DATA_FOLDER = data
+# RSA_KEY_FILENAME = data/rsa_key
+# DATABASE_URL = data/db.sqlite3
+# ICON_CACHE_FOLDER = data/icon_cache
+# ATTACHMENTS_FOLDER = data/attachments
+# LOCAL_ICON_EXTRACTOR = false
+# SIGNUPS_ALLOWED = true
+# PASSWORD_ITERATIONS = 100000
+
+# --- Web-Vault-config
+
+# Web-Vault can not be enabled because of missing files.
+# WEB_VAULT_ENABLED = true
+WEB_VAULT_FOLDER = /usr/share/bitwarden_rs/vault/
+
+# --- Rocket-config
+# ROCKET_PORT = 8000
+# ROCKET_LISTEN = localhost
+# ... See https://api.rocket.rs/rocket/config/index.html for more options, e.g. TLS.
diff --git a/bitwarden_rs.install b/bitwarden_rs.install
new file mode 100644
index 000000000000..3a6f11fe9511
--- /dev/null
+++ b/bitwarden_rs.install
@@ -0,0 +1,44 @@
+post_install() {
+ # Create users and data directory
+
+ echo "Adding user bitwarden_rs and creating data directory /var/lib/bitwarden_rs ..."
+ useradd -Ur -s /usr/bin/nologin bitwarden_rs
+ mkdir -p /var/lib/bitwarden_rs -m 0750
+ chown bitwarden_rs:bitwarden_rs /var/lib/bitwarden_rs
+ # Add service file
+ systemctl --quiet daemon-reload
+
+
+ echo "##########"
+ echo "# "
+ echo "# Remember to configure the server via its environment-variables under /etc/bitwarden_rs.env"
+ echo "# After that, start/enable the server via 'systemctl enable bitwarden_rs.service --now'"
+ echo "#"
+ echo "##########"
+
+# systemctl --quiet preset bitwarden_rs.service
+}
+
+post_upgrade() {
+ systemctl --quiet daemon-reload
+ echo "##########"
+ echo "# "
+ echo "# Remember to restart the bitwarden via 'systemctl restart bitwarden_rs.service', if neccessary."
+ echo "#"
+ echo "##########"
+
+}
+
+pre_remove() {
+ systemctl --quiet --no-reload disable --now bitwarden_rs.service
+}
+
+post_remove() {
+ systemctl --quiet daemon-reload
+ echo "##########"
+ echo "# "
+ echo "# Remember to remove the user/group bitwarden_rs, if neccessary."
+ echo "# All server data in /var/lib/bitwarden_rs was NOT deleted!"
+ echo "#"
+ echo "##########"
+}
diff --git a/bitwarden_rs.service b/bitwarden_rs.service
new file mode 100644
index 000000000000..ff6e7a7a8061
--- /dev/null
+++ b/bitwarden_rs.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=Bitwarden Server (Rust Edition)
+Documentation=https://github.com/dani-garcia/bitwarden_rs
+After=network.target
+
+[Service]
+User=bitwarden_rs
+Group=bitwarden_rs
+EnvironmentFile=/etc/bitwarden_rs.env
+ExecStart=/usr/bin/bitwarden_rs
+LimitNOFILE=1048576
+LimitNPROC=64
+PrivateTmp=true
+PrivateDevices=true
+ProtectHome=true
+ProtectSystem=strict
+WorkingDirectory=/var/lib/bitwarden_rs
+ReadWriteDirectories=/var/lib/bitwarden_rs
+AmbientCapabilities=CAP_NET_BIND_SERVICE
+
+[Install]
+WantedBy=multi-user.target