diff options
Diffstat (limited to 'www-apps/miniflux')
-rw-r--r-- | www-apps/miniflux/Manifest | 9 | ||||
-rw-r--r-- | www-apps/miniflux/files/README.gentoo | 76 | ||||
-rw-r--r-- | www-apps/miniflux/files/miniflux.conf | 22 | ||||
-rw-r--r-- | www-apps/miniflux/files/miniflux.confd | 6 | ||||
-rw-r--r-- | www-apps/miniflux/files/miniflux.initd-r1 | 21 | ||||
-rw-r--r-- | www-apps/miniflux/files/miniflux.service | 22 | ||||
-rw-r--r-- | www-apps/miniflux/metadata.xml | 11 | ||||
-rw-r--r-- | www-apps/miniflux/miniflux-2.2.3.ebuild | 107 |
8 files changed, 274 insertions, 0 deletions
diff --git a/www-apps/miniflux/Manifest b/www-apps/miniflux/Manifest new file mode 100644 index 0000000..5a967d2 --- /dev/null +++ b/www-apps/miniflux/Manifest @@ -0,0 +1,9 @@ +AUX README.gentoo 2168 BLAKE2B 2291976288e00d71ecf9b978874cd26a33d604f803c6eb511e137e8a9843e4c7b64d286482c9af47879fadfe1d800cd58e4d09ea1882d436eff528d8aaa9743f SHA512 edac844eb081472d6c8054d9bf0f8661cbbb61455d2cc97ce7d05a842fe735b6e130f1b6d0a2e26737d153624b5a7451b362e04247b366c090f2fc3e9aab7391 +AUX miniflux.conf 809 BLAKE2B 4465c338fa13d3465731fcb98616d08d4fbcfdad6e10eb3f089de62dda9297220b92cb767bd92dfd97c3a5a5f6a2bd87444b76fa790243626d77698ecefcc2a1 SHA512 470b0e8382b97c2c2d1c8a2c6865a8cd06b2157a24d81a329d6de37d9b964b502a37ca7178090f2aee5c29210fc4c6e4f7d7e2245d00d8df33cfc738012b7329 +AUX miniflux.confd 171 BLAKE2B 2d38a12678c7873ac31473a2160d1416d168e384c519fe48feebf4ea3d4e6c734ff198e652df8b0af7da5c3543eff5321a02b6991de131d746b89e3b5fb7db08 SHA512 13b43595e7a5bca01b9fbff9fc6979d408b32109bafc23cfae29a9470b5333a244ee1f1bc94ba436d93e2d2c55640690202ac1201884f9ea5499fa0161af059a +AUX miniflux.initd-r1 611 BLAKE2B 74d84f8f24a672c2fd4adedf6dc8629307638bed4a04e7c2948beabb0a7f1710a78f0054b23cc906caa08d27310473d5f45766ef9a6d04dfdef4ba7c1199a682 SHA512 7dbc37b56b8d099d3a95c5707c1666d177c03dc46d42dcc3827b771fc9cee34d489c7f240049a14b6784a4434183c70e0ba9679e982608121a8e4098e1a45a9e +AUX miniflux.service 463 BLAKE2B e6f1a3717e985f3ddae4224472b753f293a73ab015acbe80ddf20d2d9e505aa9fd47e2fca2c86749067288a1f10787e16179a41e5c30d3f37f53e83f798719b8 SHA512 c38fe3f19162be02a44a353281690d40e90cb8ac8126ea4f9aab1218e128da0be3d1152cf260fdfd19ecfed2ea4396ae4a6c645088a1b212b58a3cba8387ce60 +DIST miniflux-2.2.3-deps.tar.xz 112155512 BLAKE2B f64a1b0fd59adef0b29a6d1d00f0e03e9acbb44ab95b090e3d58c7d79236dd3e98b42eb890d68258688415141f72964f107049b4f99af1ce40131e3980be3c1c SHA512 639576856730d51031368f00b5fb71034dc9e9836c74b9d8124a10b6116bc8229a430da646807baeab5517d362b196d90f99add9aa5c90dd3bb2a566f34d1b35 +DIST miniflux-2.2.3.tar.gz 761864 BLAKE2B 35d277ed671f18e2b2c5b59ae561d6c8bda5347e6b4993c5fa21d9b08ee0e92a55efde411a55f0fd47f150b2d2db984551be41aa61ab9a9b143f226514989d8b SHA512 35a60b57936fda1e678a76d4907cdf8d5c96096364fc45702ff2b27ba367a25fa6e06c58073664c4b1ab0b779f3882f8fa7ab6179e4ed70a771d00671e971ff6 +EBUILD miniflux-2.2.3.ebuild 2806 BLAKE2B 4618fdb733a71530a223e49cc62c48bb2077f90df0d8f1b7fb04078e616bafbd5c9a911843efc2a2512cbba36394f644a3e8705752e4c083fb24e3c9fb54bf30 SHA512 7bf93c22be7ece04a7b1cfebadd14a3f93529d83669bb9e9566be42d131d8624a6569a2d985daed116b0107df8aac4fd88c221ac074900b3e82cb1909f0be995 +MISC metadata.xml 328 BLAKE2B be87574748c7d9f422aecdc2bf2ed7cb400902dde46745d64705bf597367b063cc7ec722561e34d9c8cf15a8c52623062426590363daf18108a9e3fa53a3108f SHA512 4995d59f29aefc41589c247508f6c299f2c2b88fb9f82cdd9767a04b6c0ba2a30cfe0a499af6649118e74fde1cdade54553be34a73c004f7a925b6f3f4edee50 diff --git a/www-apps/miniflux/files/README.gentoo b/www-apps/miniflux/files/README.gentoo new file mode 100644 index 0000000..7d236ff --- /dev/null +++ b/www-apps/miniflux/files/README.gentoo @@ -0,0 +1,76 @@ +Introduction +============ + +Below are some common tasks needed to administrate a miniflux instance. + + +Create the Database (Example) +============================= + +# Switch to the postgres user +$ su - postgres + +# Create a database user for miniflux +$ createuser -P miniflux +Enter password for new role: ****** +Enter it again: ****** + +# Create a database for miniflux that belongs to our user +$ createdb -O miniflux miniflux + +# Create the extension hstore as superuser +$ psql miniflux -c 'create extension hstore' +CREATE EXTENSION + + +Create the hstore Extension +=========================== + +To create the hstore extension, connect to the miniflux database as any user +with SUPERUSER privileges (like the postgres user) and run: + + CREATE EXTENSION hstore; + +Alternatively, give SUPERUSER privileges to the miniflux user only during the +schema migration: + + ALTER USER miniflux WITH SUPERUSER; + -- Run the migrations (miniflux -migrate) + ALTER USER miniflux WITH NOSUPERUSER; + + +Create the First Admin User +=========================== + +The easiest way to create the first admin user with your new miniflux instance +is by running: + + miniflux -create-admin + +Alternatively, set the DATABASE_URL, RUN_MIGRATIONS, CREATE_ADMIN, +ADMIN_USERNAME, and ADMIN_PASSWORD variables in your config file or run miniflux +with these set as environment variables. For example: + + export DATABASE_URL=postgres://miniflux:secretpassword@db/miniflux + export RUN_MIGRATIONS=1 + export CREATE_ADMIN=1 + export ADMIN_USERNAME=admin + export ADMIN_PASSWORD=n0tAstrongPassw0rd! + miniflux + + +Migrating the Database +====================== + +On upgrades, the miniflux database needs to be migrated to the new schema +version. This is handled automatically when you run 'emerge --config miniflux' +but can also be performed using the following manual steps: + +1. Export the DATABASE_URL variable. +2. Disconnect all users by flushing all sessions with 'miniflux -flush-sessions' +3. Stop the miniflux server. +4. Backup your database. +5. Verify that your backup is really working. +6. Run the database migrations with 'miniflux -migrate' or set the environment + variable RUN_MIGRATIONS=1. +7. Start miniflux. diff --git a/www-apps/miniflux/files/miniflux.conf b/www-apps/miniflux/files/miniflux.conf new file mode 100644 index 0000000..7a2b217 --- /dev/null +++ b/www-apps/miniflux/files/miniflux.conf @@ -0,0 +1,22 @@ +# This is a sample configuration file with the most commonly used options needed +# to get started. For a complete list of available options, see the miniflux (1) +# man page or visit https://miniflux.app/docs/configuration.html + +# Toggle debug mode (increase log level). +#DEBUG=off + +# Postgresql connection parameters. +# See https://pkg.go.dev/github.com/lib/pq#hdr-Connection_String_Parameters +# for more details. +#DATABASE_URL=user=postgres password=postgres dbname=miniflux2 sslmode=disable + +# Address to listen on. Use absolute path for a Unix socket. +#LISTEN_ADDR=127.0.0.1:8080 + +# Override LISTEN_ADDR to 0.0.0.0:$PORT (Automatic configuration for PaaS). +# Default is empty. +#PORT= + +# Base URL to generate HTML links and base path for cookies. +# Default is http://localhost/. +#BASE_URL=http://localhost/ diff --git a/www-apps/miniflux/files/miniflux.confd b/www-apps/miniflux/files/miniflux.confd new file mode 100644 index 0000000..2448e50 --- /dev/null +++ b/www-apps/miniflux/files/miniflux.confd @@ -0,0 +1,6 @@ +# User and group miniflux server should run as +MINIFLUX_USER=miniflux +MINIFLUX_GROUP=nobody + +# Config file the miniflux server should use +MINIFLUX_CONF=/etc/miniflux.conf diff --git a/www-apps/miniflux/files/miniflux.initd-r1 b/www-apps/miniflux/files/miniflux.initd-r1 new file mode 100644 index 0000000..3185acd --- /dev/null +++ b/www-apps/miniflux/files/miniflux.initd-r1 @@ -0,0 +1,21 @@ +#!/sbin/openrc-run +# Copyright 2020-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +: ${MINIFLUX_USER:=miniflux} +: ${MINIFLUX_GROUP:=nobody} +: ${MINIFLUX_CONF:=/etc/miniflux.conf} + +name="miniflux daemon" +description="Miniflux Web Server" +command=/usr/bin/miniflux +command_args="${miniflux_args} -c ${MINIFLUX_CONF}" +command_background="true" +command_user="${MINIFLUX_USER}:${MINIFLUX_GROUP}" +error_log="/var/log/${RC_SVCNAME}.err" +pidfile="/run/${RC_SVCNAME}.pid" + +start_pre() { + checkpath --file --owner "${MINIFLUX_USER}":root --mode 0640 \ + "${error_log}" +} diff --git a/www-apps/miniflux/files/miniflux.service b/www-apps/miniflux/files/miniflux.service new file mode 100644 index 0000000..5480dd0 --- /dev/null +++ b/www-apps/miniflux/files/miniflux.service @@ -0,0 +1,22 @@ +[Unit] +Description=Miniflux Web Server +Documentation=https://miniflux.app/ + +After=network.target +Requires=network.target +After=postgresql-9.5.service +After=postgresql-9.6.service +After=postgresql-10.service +After=postgresql-11.service +After=postgresql-12.service +After=postgresql-13.service +After=postgresql-14.service + +[Service] +User=miniflux +ExecStart=/usr/bin/miniflux -c /etc/miniflux.conf +Restart=always +PrivateTmp=true + +[Install] +WantedBy=multi-user.target diff --git a/www-apps/miniflux/metadata.xml b/www-apps/miniflux/metadata.xml new file mode 100644 index 0000000..3477ba4 --- /dev/null +++ b/www-apps/miniflux/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>wolf@oriole.systems</email> + <name>Wolfgang Müller</name> + </maintainer> + <upstream> + <remote-id type="github">miniflux/v2</remote-id> + </upstream> +</pkgmetadata> diff --git a/www-apps/miniflux/miniflux-2.2.3.ebuild b/www-apps/miniflux/miniflux-2.2.3.ebuild new file mode 100644 index 0000000..61ed6ed --- /dev/null +++ b/www-apps/miniflux/miniflux-2.2.3.ebuild @@ -0,0 +1,107 @@ +# Copyright 2020-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module systemd + +# git rev-parse --short HEAD +MY_GIT_COMMIT="da951164" + +DESCRIPTION="Minimalist and opinionated feed reader" +HOMEPAGE="https://miniflux.app https://github.com/miniflux/v2" +SRC_URI="https://github.com/${PN}/v2/archive/${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://nest.oriole.systems/gentoo/go-mod/${P}-deps.tar.xz" + +S="${WORKDIR}/v2-${PV}" + +LICENSE="Apache-2.0 BSD BSD-2 MIT" +SLOT="0" +KEYWORDS="~amd64 ~ppc64 ~riscv" + +RESTRICT="test" # requires network access + +DEPEND="acct-user/miniflux" +RDEPEND="${DEPEND} + >=dev-db/postgresql-9.5 +" + +src_compile() { + ego build -ldflags=" + -s -w + -X 'miniflux.app/v2/internal/version.Version=${PV}' + -X 'miniflux.app/v2/internal/version.Commit=${MY_GIT_COMMIT}' + -X 'miniflux.app/v2/internal/version.BuildDate=$(date +%FT%T%z)' + " -o miniflux main.go +} + +src_install() { + dobin miniflux + + insinto /etc + doins "${FILESDIR}/${PN}.conf" + + newconfd "${FILESDIR}/${PN}.confd" ${PN} + + newinitd "${FILESDIR}/${PN}.initd-r1" ${PN} + systemd_dounit "${FILESDIR}/${PN}.service" + + fowners miniflux:root /etc/${PN}.conf + fperms o-rwx /etc/${PN}.conf + + local DOCS=( + ChangeLog + README.md + "${FILESDIR}"/README.gentoo + ) + + # Makefile has no install target, so call einstalldocs directly + einstalldocs + + doman "${PN}".1 +} + +pkg_postinst() { + if [[ -z "${REPLACING_VERSIONS}" ]]; then + # This is a new installation + + echo + elog "Before using miniflux, you must first create and initialize the database" + elog "and enable the hstore extension for it." + elog "" + elog "Afterwards, create your first admin user by running:" + elog " miniflux -create-admin" + else + # This is an existing installation + + echo + elog "If you are upgrading from a previous version, schema migrations must be performed." + elog "To perform the migrations, stop the daemon, backup your database, and run:" + elog " emerge --config =${PF}" + fi + + echo + elog "Please read" + elog "" + elog " ${EPREFIX}/usr/share/doc/${PF}/README.gentoo*" + elog "" + elog "for more information." +} + +pkg_config() { + # To be safe, avoid doing migrations if miniflux is running + if pgrep miniflux; then + die "miniflux appears to be running, refusing to continue." + fi + + # Extract the database URL variable instead of just sourcing the config file + # because miniflux itself may interpret quotes as part of the URL + local DATABASE_URL="$(sed -n 's/^DATABASE_URL=\(.*\)/\1/p' "${EROOT}/etc/${PN}.conf")" + [[ -n "${DATABASE_URL}" ]] || die "Failed getting DATABASE_URL from config file" + + DATABASE_URL="${DATABASE_URL}" "${EROOT}"/usr/bin/miniflux -migrate \ + || die "miniflux -migrate failed. Please check the above output for errors." + + echo + elog "Database migrations complete." +} |