From d8d6bd4dc3f8b19dea4396fa8d495725c69e02e5 Mon Sep 17 00:00:00 2001 From: Marcin Deranek Date: Fri, 30 Apr 2021 10:48:58 +0200 Subject: Added vaultwarden --- app-admin/vaultwarden-web-vault/Manifest | 2 + .../vaultwarden-web-vault-2.19.0d.ebuild | 26 +++++++ app-admin/vaultwarden/Manifest | 6 ++ app-admin/vaultwarden/files/conf | 9 +++ app-admin/vaultwarden/files/init | 13 ++++ app-admin/vaultwarden/files/vaultwarden | 16 ++++ app-admin/vaultwarden/files/vaultwarden.service | 37 +++++++++ app-admin/vaultwarden/metadata.xml | 8 ++ app-admin/vaultwarden/vaultwarden-1.21.1.ebuild | 88 ++++++++++++++++++++++ 9 files changed, 205 insertions(+) create mode 100644 app-admin/vaultwarden-web-vault/Manifest create mode 100644 app-admin/vaultwarden-web-vault/vaultwarden-web-vault-2.19.0d.ebuild create mode 100644 app-admin/vaultwarden/Manifest create mode 100644 app-admin/vaultwarden/files/conf create mode 100644 app-admin/vaultwarden/files/init create mode 100644 app-admin/vaultwarden/files/vaultwarden create mode 100644 app-admin/vaultwarden/files/vaultwarden.service create mode 100644 app-admin/vaultwarden/metadata.xml create mode 100644 app-admin/vaultwarden/vaultwarden-1.21.1.ebuild (limited to 'app-admin') diff --git a/app-admin/vaultwarden-web-vault/Manifest b/app-admin/vaultwarden-web-vault/Manifest new file mode 100644 index 0000000..92a36ab --- /dev/null +++ b/app-admin/vaultwarden-web-vault/Manifest @@ -0,0 +1,2 @@ +DIST vaultwarden-web-vault-2.19.0d.tar.gz 7621517 BLAKE2B 2e972ce08aeeeba626c9a121477b996d64ba6b1987d6d71cc8824ea9aeb0f1173ffa81b6b095485fc9051fab33f24b7914e3df53dbcbfdedcf635660cff2cb58 SHA512 8661c5baa67cef630db7674108001a54ac68fcaa21bd7b6489f6e28b40ad1a9f32d0db90ca5a5bb36917a8e95c66fbfcfd58a8ca37aceb76e91c5eb30f9dd6b8 +EBUILD vaultwarden-web-vault-2.19.0d.ebuild 597 BLAKE2B 46a4d2436bb49e644115f00774a00bf939b630bb4a9962ba98855dfeef274fdd424369bbd1e3919e2f8b11ee05e369f4e6a211e9dced52892dda23e44305bbb0 SHA512 82e0c4708dfa472f11e53f3403161b69a29490f475f425485b167a0eef0d98684535377a38bf16503d67bb6a3467f01a7f91e56c859b930c63f143e9f00e5706 diff --git a/app-admin/vaultwarden-web-vault/vaultwarden-web-vault-2.19.0d.ebuild b/app-admin/vaultwarden-web-vault/vaultwarden-web-vault-2.19.0d.ebuild new file mode 100644 index 0000000..ff56bb3 --- /dev/null +++ b/app-admin/vaultwarden-web-vault/vaultwarden-web-vault-2.19.0d.ebuild @@ -0,0 +1,26 @@ +# Copyright 2017-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Unofficial patched bitwarden web-vault builds for vaultwarden" +HOMEPAGE="https://github.com/dani-garcia/bw_web_builds" +SRC_URI="https://github.com/dani-garcia/bw_web_builds/releases/download/v${PV}/bw_web_v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +DEPEND="" +RDEPEND="${DEPEND}" + +src_unpack() { + unpack "${P}.tar.gz" || die + S="${WORKDIR}" +} + +src_install() { + insinto /usr/share/vaultwarden-web-vault/htdocs + doins -r web-vault/* +} diff --git a/app-admin/vaultwarden/Manifest b/app-admin/vaultwarden/Manifest new file mode 100644 index 0000000..9dae912 --- /dev/null +++ b/app-admin/vaultwarden/Manifest @@ -0,0 +1,6 @@ +AUX conf 270 BLAKE2B eedd55cdae2c1b4160ef2e08a341aeb3356edbef7bbba67ce4fcde810de595012939d32b91cc58a04ae6510acffd350d6ded316ecf3cc2f047ffc85a3acaaa01 SHA512 ebbed2c0c12c7f42974bedf9336ab93a43c951abfe72c36d31b0da05bee623a707994b21774380f6d0943725d4cadf0d53bc32b4733c1dddaa3d41e5e73bbe41 +AUX init 493 BLAKE2B fbb148dfd2e319928544ae36ccde1fa62456359403999cc8cb151db5febb6d5331ae185b599012924b6bd3533260005fe16fe3694464aff2f249065aba37a2a6 SHA512 bbcd2355cec35c185b143f9cbd26cec4c57de4cd4dbd8b7e9376e6a5aa48a8db5ab72c72da4f4ddf0b9b70f2c915379c8e07eda772983928242057afa67189e0 +AUX vaultwarden 332 BLAKE2B eeee143031362d7232de544ba5b349eb77326e1e8ea462d4736557def280a00836cc35f7cfbb9eb27ab52058e8a51be2d805bcf2a7a30ee56d277c8de04f889c SHA512 9e98beefef37922309bbba217624a9ec586e9af642905e590a5d978efcb8027754a71cab792b14ff623c6422f5e958afaef1b3edf245a5f39d60d867f9faf131 +AUX vaultwarden.service 972 BLAKE2B 25865a0e76ed673202eb9c0259331c3de5f843050185913f02b14d8a0d25036656f5a30b2f5b460fc13ce3cd3a6e2319495aac1365d3c5a75746000d315bacfe SHA512 277d8fc4c9db0b24990cbc2e0a1ea687b5779c28febca54352a15b782cdd4c24b7c64821d7fe0a2e0794efb1a0732ccb4533cf8f97cf832876013f0ad2b8c5dd +EBUILD vaultwarden-1.21.1.ebuild 1959 BLAKE2B e1aafe096004306d2df69b0c4081c93fd48ce51cd7d6382c3f89912acb32a7ed4c78fbfedd97587ef9c39a2de8188aeefa1308d98dd4811ace50e623acf29032 SHA512 b228e795c015250f5672cdf8ea9c525b7c6fa4f144194d7baa78dcf96cd4a930c0f3117f5b02011e8f6cab8b8c2fd51f30c3460d71a41587e87d52769fe54f0e +MISC metadata.xml 255 BLAKE2B fec818e56877b2451e889c05ed95700632e02438bbe9ae515925548714246b19bdf3b141e0771f64b92483ade6734afe8828d0b177db1d76902c535871ea5551 SHA512 f5e088eef2af90b4f6129ca7ed31d833f61521a8fe6c60e5d5cb871601a85374bf330f445c298990760d51e5186ec8156a192ff30b42f8abc3cb82d329ccc803 diff --git a/app-admin/vaultwarden/files/conf b/app-admin/vaultwarden/files/conf new file mode 100644 index 0000000..3928906 --- /dev/null +++ b/app-admin/vaultwarden/files/conf @@ -0,0 +1,9 @@ +# /etc/conf.d/vaultwarden: config file for /etc/init.d/vaultwarden +# vim: set filetype=gentoo-conf-d: + +# User and group +VAULTWARDEN_USER="vaultwarden" +VAULTWARDEN_GROUP="vaultwarden" + +# Environment config file (will be sourced) +VAULTWARDEN_CONFIG="/etc/vaultwarden.env" diff --git a/app-admin/vaultwarden/files/init b/app-admin/vaultwarden/files/init new file mode 100644 index 0000000..66fd2ea --- /dev/null +++ b/app-admin/vaultwarden/files/init @@ -0,0 +1,13 @@ +#!/sbin/openrc-run +# Copyright 1999-2021 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +command="/var/lib/vaultwarden/vaultwarden" +pidfile="/run/vaultwarden.pid" +description="Unofficial Vaultwarden compatible server written in Rust" +start_stop_daemon_args="--env VAULTWARDEN_CONFIG=$VAULTWARDEN_CONFIG --user ${VAULTWARDEN_USER} --group ${VAULTWARDEN_GROUP} --pidfile ${pidfile} --make-pidfile --background" + +depend() { + need net + use mysql postgresql +} diff --git a/app-admin/vaultwarden/files/vaultwarden b/app-admin/vaultwarden/files/vaultwarden new file mode 100644 index 0000000..8400dfb --- /dev/null +++ b/app-admin/vaultwarden/files/vaultwarden @@ -0,0 +1,16 @@ +#!/bin/bash + +# Load config +set -o allexport +source "$VAULTWARDEN_CONFIG" +set +o allexport + +# Create data dir +cd /var/lib/vaultwarden +mkdir -p "${DATA_FOLDER:-data}" + +# Use default web vault folder +export WEB_VAULT_FOLDER="${WEB_VAULT_FOLDER:-"/usr/share/vaultwarden-web-vault/htdocs"}" + +# Exec vaultwarden +exec /usr/bin/vaultwarden diff --git a/app-admin/vaultwarden/files/vaultwarden.service b/app-admin/vaultwarden/files/vaultwarden.service new file mode 100644 index 0000000..12ba0d4 --- /dev/null +++ b/app-admin/vaultwarden/files/vaultwarden.service @@ -0,0 +1,37 @@ +[Unit] +Description=Unofficial Bitwarden compatible server written in Rust +Documentation=https://github.com/dani-garcia/vaultwarden +After=network.target mariadb.service mysqld.service postgresql.service + +[Service] +User=vaultwarden +Group=vaultwarden +Environment="WEB_VAULT_FOLDER=/usr/share/vaultwarden-web-vault/htdocs" +EnvironmentFile=/etc/vaultwarden.env +ExecStart=/usr/bin/vaultwarden + +LimitNOFILE=1048576 +LimitNPROC=256 + +PrivateTmp=true +PrivateDevices=true +ProtectHome=true +ProtectSystem=strict +ProtectKernelTunables=yes +ProtectKernelModules=yes +ProtectControlGroups=yes + +RestrictNamespaces=yes + +SystemCallArchitectures=native +SystemCallFilter=@system-service +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 + +WorkingDirectory=/var/lib/vaultwarden +ReadWriteDirectories=/var/lib/vaultwarden +# Allow vaultwarden to bind ports in the range of 0-1024 +AmbientCapabilities=CAP_NET_BIND_SERVICE +CapabilityBoundingSet=CAP_NET_BIND_SERVICE + +[Install] +WantedBy=multi-user.target diff --git a/app-admin/vaultwarden/metadata.xml b/app-admin/vaultwarden/metadata.xml new file mode 100644 index 0000000..1196209 --- /dev/null +++ b/app-admin/vaultwarden/metadata.xml @@ -0,0 +1,8 @@ + + + + + marcin.deranek@slonko.net + Marcin Deranek + + diff --git a/app-admin/vaultwarden/vaultwarden-1.21.1.ebuild b/app-admin/vaultwarden/vaultwarden-1.21.1.ebuild new file mode 100644 index 0000000..024645c --- /dev/null +++ b/app-admin/vaultwarden/vaultwarden-1.21.1.ebuild @@ -0,0 +1,88 @@ +# Copyright 2017-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit git-r3 cargo systemd + +DESCRIPTION="Unofficial Bitwarden compatible server written in Rust" +HOMEPAGE="https://github.com/dani-garcia/vaultwarden" +EGIT_REPO_URI="https://github.com/dani-garcia/vaultwarden.git" +EGIT_COMMIT="${PV}" +SRC_URI="" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64" +IUSE="mysql postgres sqlite" + +REQUIRED_USE="|| ( mysql postgres sqlite )" + +ACCT_DEPEND=" + acct-group/vaultwarden + acct-user/vaultwarden +" +DEPEND=" + >=app-admin/vaultwarden-web-vault-2.19.0 + dev-lang/rust[nightly] + dev-libs/openssl:0= +" +RDEPEND=" + ${ACCT_DEPEND} + ${DEPEND} +" + +src_unpack() { + git-r3_src_unpack + + mkdir -p "${S}" || die + + pushd "${S}" > /dev/null || die + CARGO_HOME="${ECARGO_HOME}" cargo fetch || die + CARGO_HOME="${ECARGO_HOME}" cargo vendor "${ECARGO_VENDOR}" || die + popd > /dev/null || die + + cargo_gen_config +} + +src_configure() { + myfeatures=( + $(usev mysql) + $(usex postgres postgresql '') + $(usev sqlite) + ) +} + +src_compile() { + cargo_src_compile ${myfeatures:+--features "${myfeatures[*]}"} --no-default-features +} + +src_install() { + cargo_src_install ${myfeatures:+--features "${myfeatures[*]}"} --no-default-features + + einstalldocs + + # Install init.d and conf.d scripts + newinitd "${FILESDIR}"/init vaultwarden + newconfd "${FILESDIR}"/conf vaultwarden + systemd_newunit "${FILESDIR}"/vaultwarden.service vaultwarden.service + + # Install /etc/vaultwarden.env + insinto /etc + newins .env.template vaultwarden.env + fowners root:vaultwarden /etc/vaultwarden.env + fperms 640 /etc/vaultwarden.env + + # Install launch wrapper + exeinto /var/lib/vaultwarden + doexe "${FILESDIR}"/vaultwarden + + # Keep data dir + keepdir /var/lib/vaultwarden/data + fowners vaultwarden:vaultwarden /var/lib/vaultwarden/data + fperms 700 /var/lib/vaultwarden/data +} + +src_test() { + cargo_src_test ${myfeatures:+--features "${myfeatures[*]}"} --no-default-features +} -- cgit v1.2.3