diff --git a/ALL_README.md b/ALL_README.md index 77b7509..152f2e7 100644 --- a/ALL_README.md +++ b/ALL_README.md @@ -1,6 +1,8 @@ # All available README files by language - [Read the README in English](README.md) +- [Lea el README en español](README_es.md) - [Irakurri README euskaraz](README_eu.md) - [Lire le README en français](README_fr.md) - [Le o README en galego](README_gl.md) +- [阅读中文(简体)的 README](README_zh_Hans.md) diff --git a/README.md b/README.md index 649efab..f11f9a7 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ It shall NOT be edited by hand. MicroBin is a super tiny, feature rich, configurable, self-contained and self-hosted paste bin web application. It is very easy to set up and use, and will only require a few megabytes of memory and disk storage. -**Shipped version:** 2.0.4~ynh1 +**Shipped version:** 2.0.4~ynh2 **Demo:** diff --git a/README_es.md b/README_es.md new file mode 100644 index 0000000..48de17f --- /dev/null +++ b/README_es.md @@ -0,0 +1,48 @@ + + +# MicroBin para Yunohost + +[![Nivel de integración](https://dash.yunohost.org/integration/microbin.svg)](https://dash.yunohost.org/appci/app/microbin) ![Estado funcional](https://ci-apps.yunohost.org/ci/badges/microbin.status.svg) ![Estado En Mantención](https://ci-apps.yunohost.org/ci/badges/microbin.maintain.svg) + +[![Instalar MicroBin con Yunhost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=microbin) + +*[Leer este README en otros idiomas.](./ALL_README.md)* + +> *Este paquete le permite instalarMicroBin rapidamente y simplement en un servidor YunoHost.* +> *Si no tiene YunoHost, visita [the guide](https://yunohost.org/install) para aprender como instalarla.* + +## Descripción general + +MicroBin is a super tiny, feature rich, configurable, self-contained and self-hosted paste bin web application. It is very easy to set up and use, and will only require a few megabytes of memory and disk storage. + +**Versión actual:** 2.0.4~ynh2 + +**Demo:** + +## Capturas + +![Captura de MicroBin](./doc/screenshots/screenshot7.png) + +## Documentaciones y recursos + +- Sitio web oficial: +- Repositorio del código fuente oficial de la aplicación : +- Catálogo YunoHost: +- Reportar un error: + +## Información para desarrolladores + +Por favor enviar sus correcciones a la [`branch testing`](https://github.com/YunoHost-Apps/microbin_ynh/tree/testing + +Para probar la rama `testing`, sigue asÍ: + +```bash +sudo yunohost app install https://github.com/YunoHost-Apps/microbin_ynh/tree/testing --debug +o +sudo yunohost app upgrade microbin -u https://github.com/YunoHost-Apps/microbin_ynh/tree/testing --debug +``` + +**Mas informaciones sobre el empaquetado de aplicaciones:** diff --git a/README_eu.md b/README_eu.md index 609c323..05dafe6 100644 --- a/README_eu.md +++ b/README_eu.md @@ -18,7 +18,7 @@ EZ editatu eskuz. MicroBin is a super tiny, feature rich, configurable, self-contained and self-hosted paste bin web application. It is very easy to set up and use, and will only require a few megabytes of memory and disk storage. -**Paketatutako bertsioa:** 2.0.4~ynh1 +**Paketatutako bertsioa:** 2.0.4~ynh2 **Demoa:** diff --git a/README_fr.md b/README_fr.md index 697ca04..bdd7805 100644 --- a/README_fr.md +++ b/README_fr.md @@ -18,7 +18,7 @@ Il NE doit PAS être modifié à la main. MicroBin est une application Web riche en fonctionnalités, configurable, autonome et auto-hébergée. Elle est très simple à configurer et à utiliser et ne nécessitera que quelques mégaoctets de mémoire et de stockage sur disque. -**Version incluse :** 2.0.4~ynh1 +**Version incluse :** 2.0.4~ynh2 **Démo :** diff --git a/README_gl.md b/README_gl.md index 23688b4..781a2c4 100644 --- a/README_gl.md +++ b/README_gl.md @@ -18,7 +18,7 @@ NON debe editarse manualmente. MicroBin is a super tiny, feature rich, configurable, self-contained and self-hosted paste bin web application. It is very easy to set up and use, and will only require a few megabytes of memory and disk storage. -**Versión proporcionada:** 2.0.4~ynh1 +**Versión proporcionada:** 2.0.4~ynh2 **Demo:** diff --git a/README_zh_Hans.md b/README_zh_Hans.md new file mode 100644 index 0000000..55993d5 --- /dev/null +++ b/README_zh_Hans.md @@ -0,0 +1,48 @@ + + +# YunoHost 上的 MicroBin + +[![集成程度](https://dash.yunohost.org/integration/microbin.svg)](https://dash.yunohost.org/appci/app/microbin) ![工作状态](https://ci-apps.yunohost.org/ci/badges/microbin.status.svg) ![维护状态](https://ci-apps.yunohost.org/ci/badges/microbin.maintain.svg) + +[![使用 YunoHost 安装 MicroBin](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=microbin) + +*[阅读此 README 的其它语言版本。](./ALL_README.md)* + +> *通过此软件包,您可以在 YunoHost 服务器上快速、简单地安装 MicroBin。* +> *如果您还没有 YunoHost,请参阅[指南](https://yunohost.org/install)了解如何安装它。* + +## 概况 + +MicroBin is a super tiny, feature rich, configurable, self-contained and self-hosted paste bin web application. It is very easy to set up and use, and will only require a few megabytes of memory and disk storage. + +**分发版本:** 2.0.4~ynh2 + +**演示:** + +## 截图 + +![MicroBin 的截图](./doc/screenshots/screenshot7.png) + +## 文档与资源 + +- 官方应用网站: +- 上游应用代码库: +- YunoHost 商店: +- 报告 bug: + +## 开发者信息 + +请向 [`testing` 分支](https://github.com/YunoHost-Apps/microbin_ynh/tree/testing) 发送拉取请求。 + +如要尝试 `testing` 分支,请这样操作: + +```bash +sudo yunohost app install https://github.com/YunoHost-Apps/microbin_ynh/tree/testing --debug +或 +sudo yunohost app upgrade microbin -u https://github.com/YunoHost-Apps/microbin_ynh/tree/testing --debug +``` + +**有关应用打包的更多信息:** diff --git a/conf/.env b/conf/.env new file mode 100644 index 0000000..55e942f --- /dev/null +++ b/conf/.env @@ -0,0 +1,237 @@ +# Require username for HTTP Basic Authentication when +# visiting the service. If basic auth username is set but +# basic auth password is not, just leave the password field +# empty when logging in. You can also just go to +# https://username:password@yourserver.net or +# https://username@yourserver.net if password is not set +# instead of typing into the password +# Default value: unset +# MICROBIN_BASIC_AUTH_USERNAME= + +# Require password for HTTP Basic Authentication when +# visiting the service. Will not have any affect unless +# basic auth username is also set. If basic auth username is +# set but basic auth password is not, just leave the +# password field empty when logging in. You can also just go +# to https://username:password@yourserver.net or +# https://username@yourserver.net if password is not set +# instead of typing into the password prompt. +# Default value: unset +# MICROBIN_BASIC_AUTH_PASSWORD= + +# Enables administrator interface at yourserver.com/admin/ +# if set, disables it if unset. If admin username is set but +# admin password is not, just leave the password field empty +# when logging in. +# Default value: admin +MICROBIN_ADMIN_USERNAME=__ADMIN__ + +# Enables administrator interface at yourserver.com/admin/ +# if set, disables it if unset. Will not have any affect +# unless admin username is also set. If admin username is +# set but admin password is not, just leave the password +# field empty when logging in. +# Default value: m1cr0b1n +MICROBIN_ADMIN_PASSWORD=__PASSWORD__ + +# Enables editable pastas. You will still be able to make +# finalised pastas but there will be an extra checkbox to +# make your new pasta editable from the pasta list or the +# pasta view page. +# Default value: 8080 +MICROBIN_EDITABLE=true + +# Replaces the default footer text with your own. If you +# want to hide the footer, use the hide footer option instead. +# Note that you can also embed HTML here, so you may want to escape +# '<', '>' and so on. +# MICROBIN_FOOTER_TEXT= + +# Hides the navigation bar on every page. +# Default value: false +MICROBIN_HIDE_HEADER=false + +# Hides the footer on every page. +# Default value: false +MICROBIN_HIDE_FOOTER=false + +# Hides the MicroBin logo from the navigation bar on every +# page. +# Default value: false +MICROBIN_HIDE_LOGO=false + +# Disables the /pastalist endpoint, essentially making all +# pastas private. +# Default value: false +MICROBIN_NO_LISTING=false + +# Enables syntax highlighting support. When creating a new +# pasta, a new dropdown selector will be added where you can +# select your pasta's syntax, or just leave it empty for no +# highlighting. +MICROBIN_HIGHLIGHTSYNTAX=true + +# Sets the port for the server will be listening on. +# Default value: 8080 +MICROBIN_PORT=__PORT__ + +# Sets the bind address for the server will be listening on. +# Both ipv4 and ipv6 are supported. Default value: "0.0.0.0". +# Example value: "myserver.net", "127.0.0.1". +MICROBIN_BIND="127.0.0.1" + +# Enables private pastas. Adds a new checkbox to make your +# pasta private, which then won't show up on the pastalist +# page. With the URL to your pasta, it will still be +# accessible. +# Default value: false +MICROBIN_PRIVATE=true + +# DEPRECATED: Will be removed soon. If you want to change styling (incl. removal), use custom CSS variable instead. +# Disables main CSS styling, just uses a few in-line +# stylings for the layout. With this option you will lose +# dark-mode support. +MICROBIN_PURE_HTML=false + +# Sets the name of the directory where MicroBin creates +# its database and stores attachments. +# Default value: microbin_data +MICROBIN_DATA_DIR="__DATA_DIR__" + +# Enables storing pasta data (not attachments and files) in +# a JSON file instead of the SQLite database. +# Default value: false +MICROBIN_JSON_DB=false + +# Add the given public path prefix to all urls. This allows +# you to host MicroBin behind a reverse proxy on a subpath. +# Note that MicroBin itself still expects all routes to be +# as without this option, and thus is unsuited if you are +# running MicroBin directly. Default value: unset. Example +# values: https://myserver.com/ or https://192.168.0.10:8080/ +MICROBIN_PUBLIC_PATH=https://__DOMAIN__/ + +# Sets a shortened path to use when the user copies URL from +# the application. This will also use shorter endpoints, +# such as /p/ instead if /pasta/. Default value: +# unset.Example value: https://b.in/ export +# MICROBIN_SHORT_PATH= + +# The password required for uploading, if read-only mode is enabled +# Default value: unset +# MICROBIN_UPLOADER_PASSWORD= + +# If set to true, authentication required for uploading +# Default value: false +MICROBIN_READONLY=true + +# Enables showing read count on pasta pages. +# Default value: false +MICROBIN_SHOW_READ_STATS=true + +# Adds your title of choice to the +# navigation bar. +# Default value: unset +# MICROBIN_TITLE= + +# Number of workers MicroBin is allowed to have. Increase +# this to the number of CPU cores you have if you want to go +# beast mode, but for personal use one worker is enough. +# Default value: 1. +MICROBIN_THREADS=1 + +# Sets the garbage collector time limit. Pastas not accessed +# for N days are removed even if they are set to never +# expire. +# Default value: 90. +# To turn off GC: 0. +MICROBIN_GC_DAYS=90 + +# Enables or disables the "Burn after" function +# Default value: false +MICROBIN_ENABLE_BURN_AFTER=true + +# Sets the default burn after setting on the main screen. +# Default value: 0. Available expiration options: 1, 10, +# 100, 1000, 10000, 0 (= no limit) +MICROBIN_DEFAULT_BURN_AFTER=0 + +# Changes the maximum width of the UI from 720 pixels to +# 1080 pixels. +# Default value: false +MICROBIN_WIDE=false + +# Enables generating QR codes for pastas. Requires +# the public path to also be set. +# Default value: false +MICROBIN_QR=true + +# Toggles "Never" expiry settings for pastas. Default +# value: false +MICROBIN_ETERNAL_PASTA=false + +# Enables "Read-only" uploads. These are unlisted and +# unencrypted, but can be viewed without password if you +# have the URL. Editing and removing requires password. +# Default value: true +MICROBIN_ENABLE_READONLY=true + +# Sets the default expiry time setting on the main screen. +# Default value: 24hour Available expiration options: 1min, +# 10min, 1hour, 24hour, 1week, never +MICROBIN_DEFAULT_EXPIRY=24hour + +# Disables and hides the file upload option in the UI. +# Default value: false +MICROBIN_NO_FILE_UPLOAD=false + +# Replaced the built-in water.css stylesheet with the URL +# you provide. Default value: unset. Example value: +# https://myserver.net/public/mystyle.css +# MICROBIN_CUSTOM_CSS= + +# Use short hash strings in the URLs instead of animal names +# to make URLs shorter. Does not change the underlying data +# stored, just how pastas are recalled. +# Default value: false +MICROBIN_HASH_IDS=false + +# Enables server-side encryption. This will add private +# privacy level, where the user sends plain unencrypted data +# (still secure, because you use HTTPS, right?), but the +# server sees everything that the user submits, therefore +# the user does not have complete and absolute protection. +# Default value: false +MICROBIN_ENCRYPTION_CLIENT_SIDE=true + +# Enables client-side encryption. This will add the secret +# privacy level where the user's browser encrypts all data +# with JavaScript before sending it over to MicroBin, which +# encrypt the data once again on server side. +# Default value: false +MICROBIN_ENCRYPTION_SERVER_SIDE=true + +# Limit the maximum file size users can upload without +# encryption. Default value: 256. +MICROBIN_MAX_FILE_SIZE_ENCRYPTED_MB=256 + +# Limit the maximum file size users can upload with +# encryption (more strain on your server than without +# encryption, so the limit should be lower. Secrets tend to +# be tiny files usually anyways.) Default value: 2048. +MICROBIN_MAX_FILE_SIZE_UNENCRYPTED_MB=2048 + +# Disables the feature that checks for available updates +# when opening the admin screen. +# Default value: false +MICROBIN_DISABLE_UPDATE_CHECKING=false + +# Disables telemetry if set to true. +# Telemetry includes your configuration and helps development. +# It does not include any sensitive data. +# Default value: false +MICROBIN_DISABLE_TELEMETRY=true + +# Enables listing your server in the public MicroBin server list. +# Default value: false +MICROBIN_LIST_SERVER=false \ No newline at end of file diff --git a/conf/systemd.service b/conf/systemd.service index 0111896..0abf708 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -6,38 +6,7 @@ After=network.target Type=simple User=__APP__ Group=__APP__ -Environment="MICROBIN_ADMIN_USERNAME=__ADMIN__" -Environment="MICROBIN_ADMIN_PASSWORD=__PASSWORD__" -Environment="MICROBIN_PORT=__PORT__" -Environment="MICROBIN_BIND=127.0.0.1" -# Environment="MICROBIN_PUBLIC_PATH=https://__DOMAIN__" -# Environment="MICROBIN_SHORT_PATH=https://short.net" -Environment="MICROBIN_DATA_DIR=__DATA_DIR__ -Environment="MICROBIN_JSON_DB=false" -Environment="MICROBIN_EDITABLE=true" -Environment="MICROBIN_HIDE_HEADER=false" -Environment="MICROBIN_HIDE_FOOTER=true" -Environment="MICROBIN_HIDE_LOGO=false" -Environment="MICROBIN_NO_LISTING=false" -Environment="MICROBIN_READONLY=false" -Environment="MICROBIN_SHOW_READ_STATS=true" -Environment="MICROBIN_THREADS=1" -Environment="MICROBIN_GC_DAYS=90" -Environment="MICROBIN_WIDE=false" -Environment="MICROBIN_ETERNAL_PASTA=false" -Environment="MICROBIN_PRIVATE=true" -Environment="MICROBIN_HIGHLIGHTSYNTAX=true" -Environment="MICROBIN_QR=true" -Environment="MICROBIN_ENABLE_BURN_AFTER=true" -Environment="MICROBIN_ENABLE_READONLY=true" -Environment="MICROBIN_DEFAULT_EXPIRY=24hour" -Environment="MICROBIN_NO_FILE_UPLOAD=false" -Environment="MICROBIN_HASH_IDS=false" -Environment="MICROBIN_ENCRYPTION_CLIENT_SIDE=true" -Environment="MICROBIN_ENCRYPTION_SERVER_SIDE=true" -Environment="MICROBIN_MAX_FILE_SIZE_ENCRYPTED_MB=256" -Environment="MICROBIN_MAX_FILE_SIZE_UNENCRYPTED_MB=2048" -Environment="MICROBIN_DISABLE_TELEMETRY=true" +EnvironmentFile=__INSTALL_DIR__/.env WorkingDirectory=__INSTALL_DIR__/ ExecStart=__INSTALL_DIR__/microbin diff --git a/manifest.toml b/manifest.toml index ac93646..a907127 100644 --- a/manifest.toml +++ b/manifest.toml @@ -7,7 +7,7 @@ name = "MicroBin" description.en = "Configurable file-sharing and URL shortening web app" description.fr = "Application Web sécurisée et configurable de partage de fichiers et de raccourcissement d'URL" -version = "2.0.4~ynh1" +version = "2.0.4~ynh2" maintainers = ["eric_G"] @@ -56,6 +56,8 @@ ram.runtime = "50M" url = "https://github.com/szabodanika/microbin/releases/download/v2.0.4/microbin-v2.0.4-x86_64-unknown-linux-musl.tar.gz" sha256 = "ccfc69c5ab33cc79c56da0cea55e68a5b93f19fd68ac028a00e9d09bcf5575b6" + autoupdate.strategy = "latest_github_tag" + [resources.system_user] [resources.install_dir] diff --git a/scripts/install b/scripts/install index dd291c6..0371e37 100755 --- a/scripts/install +++ b/scripts/install @@ -24,6 +24,16 @@ ynh_setup_source --dest_dir="$install_dir" chown -R "$app:www-data" "$install_dir" chmod +x "$install_dir/microbin" +#================================================= +# APP INITIAL CONFIGURATION +#================================================= +ynh_script_progression --message="Adding $app's configuration files..." --weight=1 + +ynh_add_config --template=".env" --destination="$install_dir/.env" + +chmod 400 "$install_dir/.env" +chown "$app:$app" "$install_dir/.env" + #================================================= # SYSTEM CONFIGURATION #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 9053280..4462a8f 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -25,6 +25,16 @@ ynh_setup_source --dest_dir="$install_dir" chown -R "$app:www-data" "$install_dir" chmod +x "$install_dir/microbin" +#================================================= +# UPDATE A CONFIG FILE +#================================================= +ynh_script_progression --message="Updating $app's configuration files..." --weight=1 + +ynh_add_config --template=".env" --destination="$install_dir/.env" + +chmod 400 "$install_dir/.env" +chown "$app:$app" "$install_dir/.env" + #================================================= # REAPPLY SYSTEM CONFIGURATIONS #=================================================