diff --git a/README.md b/README.md index 3cd42fb..1f0e015 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ For user friendly details about Pleroma: [see here](https://blog.soykaf.com/post - Tootdon (Android + iOS) - Tootle (iOS) -**Shipped version:** 0.9.9 +**Shipped version:** 0.9.999 ## Important points to read before installing diff --git a/conf/generated_config.exs b/conf/generated_config.exs index 6b7eebe..8781368 100644 --- a/conf/generated_config.exs +++ b/conf/generated_config.exs @@ -8,7 +8,7 @@ use Mix.Config config :pleroma, Pleroma.Web.Endpoint, url: [host: "__DOMAIN__", scheme: "https", port: 443], secret_key_base: "__KEY__", - http: [port: __PORT__] + http: [ip: {127, 0, 0, 1}, port: __PORT__] config :pleroma, :instance, name: "__INSTANCE_NAME__", diff --git a/conf/media.conf b/conf/media.conf index 3b5b81e..550fae5 100644 --- a/conf/media.conf +++ b/conf/media.conf @@ -1,6 +1,16 @@ - location /proxy { + rewrite ^/proxy/(.*)/(.*)/.* /proxy/$1/$2 last; + + location ~ ^/(media|proxy) { proxy_cache {APP}_media_cache; + proxy_cache_key $host$uri$is_args$args; + proxy_http_version 1.1; + proxy_cache_valid 200 206 301 304 1h; proxy_cache_lock on; proxy_ignore_client_abort on; + proxy_buffering on; + chunked_transfer_encoding on; + proxy_ignore_headers Cache-Control; + proxy_hide_header Cache-Control; + proxy_pass http://localhost:__PORT__; } diff --git a/conf/nginx.conf b/conf/nginx.conf index 7de2dd3..e1fb8e7 100755 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -4,6 +4,17 @@ if ($scheme = http) { rewrite ^ https://$server_name$request_uri? permanent; } + + # Standard nginx configuration + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $http_host; + + proxy_pass http://localhost:__PORT__; + + client_max_body_size 16m; + add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Methods' 'POST, PUT, DELETE, GET, PATCH, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, Idempotency-Key' always; @@ -19,17 +30,12 @@ add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "same-origin" always; add_header X-Download-Options "noopen" always; - add_header Content-Security-Policy "default-src 'none'; base-uri 'self'; form-action *; frame-ancestors 'none'; img-src 'self' data: https:; media-src 'self' https:; style-src 'self' 'unsafe-inline'; font-src 'self'; script-src 'self'; connect-src 'self' wss://__DOMAIN__; upgrade-insecure-requests;" always; + #add_header Content-Security-Policy "default-src 'none'; base-uri 'self'; form-action *; frame-ancestors 'none'; img-src 'self' data: https:; media-src 'self' https:; style-src 'self' 'unsafe-inline'; font-src 'self'; script-src 'self'; connect-src 'self' wss://__DOMAIN__; upgrade-insecure-requests;" always; # Uncomment this only after you get HTTPS working. # add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_set_header Host $http_host; - proxy_pass http://localhost:__PORT__; - - client_max_body_size 16m; + # Include SSOWAT user panel. + include conf.d/yunohost_panel.conf.inc; } diff --git a/manifest.json b/manifest.json index e3081ae..f1f3cf9 100755 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Pleroma is an OStatus-compatible social networking server written in Elixir, compatible with GNU Social and Mastodon", "fr": "Pleroma est un réseau social écrit en Elixir, compatible avec OStatus, GNU Social et Mastodon" }, - "version": "0.9.9~ynh2", + "version": "0.9.999~ynh3", "url": "https://git.pleroma.social/pleroma/pleroma", "license": "AGPL-3.0-only", "maintainer": { diff --git a/pull_request_template.md b/pull_request_template.md new file mode 100644 index 0000000..1bf7391 --- /dev/null +++ b/pull_request_template.md @@ -0,0 +1,23 @@ +## Problem +- *Description of why you made this PR* + +## Solution +- *And how do you fix that problem* + +## PR Status +- [ ] Code finished. +- [ ] Tested with Package_check. +- [ ] Fix or enhancement tested. +- [ ] Upgrade from last version tested. +- [ ] Can be reviewed and tested. + +## Validation +--- +- [ ] **Code review** +- [ ] **Approval (LGTM)** +*Code review and approval have to be from a member of @YunoHost/apps group* +- **CI succeeded** : +[![Build Status](https://ci-apps-hq.yunohost.org/jenkins/job/pleroma_ynh%20-BRANCH-/badge/icon)](https://ci-apps-hq.yunohost.org/jenkins/job/pleroma_ynh%20-BRANCH-/) +*Please replace '-BRANCH-' in this link by the name of the branch used.* +*If the PR is from a forked repository. Please provide public results from package_check.* +When the PR is marked as ready to merge, you have to wait for 3 days before really merging it. diff --git a/scripts/_common.sh b/scripts/_common.sh index b905339..2592400 100755 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -1,5 +1,12 @@ #!/bin/bash +#================================================= +# COMMON VARIABLES +#================================================= + +# dependencies used by the app +pkg_dependencies="git build-essential postgresql postgresql-contrib elixir erlang-dev erlang-tools erlang-parsetools erlang-eldap erlang-xmerl openssl ssh sudo" + #================================================= # PERSONAL HELPERS #================================================= diff --git a/scripts/install b/scripts/install index 253589d..bc35183 100755 --- a/scripts/install +++ b/scripts/install @@ -107,18 +107,19 @@ port=$(ynh_find_port 8095) ynh_app_setting_set $app port $port #================================================= -# INSTALL ERLANG and ELIXIR +# INSTALL ERLANG AND ELIXIR #================================================= ynh_print_info "Installing erlang and elixir ..." if [ "$(lsb_release --codename --short)" == "jessie" ]; then - sudo apt install -y ../conf/esl-erlang_21.2.6-1~debian~jessie_amd64.deb - sudo apt install -y ../conf/elixir_1.8.1-2~debian~jessie_amd64.deb + echo "deb http://packages.erlang-solutions.com/debian jessie contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list elif [ "$(lsb_release --codename --short)" == "stretch" ]; then - sudo apt install -y ../conf/esl-erlang_21.2.6-1~debian~stretch_amd64.deb - sudo apt install -y ../conf/elixir_1.8.1-2~debian~stretch_amd64.deb + echo "deb http://packages.erlang-solutions.com/debian stretch contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list fi +sudo wget https://packages.erlang-solutions.com/debian/erlang_solutions.asc +sudo apt-key add erlang_solutions.asc +sudo rm erlang_solutions.asc #================================================= # INSTALL DEPENDENCIES @@ -132,7 +133,7 @@ ynh_print_info "Installing dependencies ..." ### - As well as the section "REINSTALL DEPENDENCIES" in the restore script ### - And the section "UPGRADE DEPENDENCIES" in the upgrade script -ynh_install_app_dependencies git build-essential openssl ssh sudo postgresql postgresql-contrib elixir erlang-dev erlang-parsetools erlang-xmerl erlang-tools +ynh_install_app_dependencies $pkg_dependencies #================================================= # CREATE A POSTGRESQL DATABASE @@ -152,8 +153,7 @@ ynh_app_setting_set $app db_name $db_name ynh_app_setting_set "$app" db_pwd "$db_pwd" ynh_psql_test_if_first_run ynh_psql_create_user "$app" "$db_pwd" -ynh_psql_execute_as_root \ -"CREATE DATABASE $db_name ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER $db_name;" +ynh_psql_execute_as_root "CREATE DATABASE $db_name ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER $db_name;" ynh_psql_execute_as_root "\connect $db_name CREATE EXTENSION IF NOT EXISTS unaccent;" ynh_psql_execute_as_root "\connect $db_name diff --git a/scripts/remove b/scripts/remove index 50479bb..ffa9bc3 100755 --- a/scripts/remove +++ b/scripts/remove @@ -74,8 +74,8 @@ ynh_remove_app_dependencies #================================================= ynh_print_info "Removing erlang and elixir..." -sudo apt remove -y esl-erlang -sudo apt remove -y elixir +ynh_secure_remove "/etc/apt/sources.list.d/erlang-solutions.list" +apt-key del A14F4FCA #================================================= # REMOVE APP MAIN DIR diff --git a/scripts/restore b/scripts/restore index 55909ad..1002244 100755 --- a/scripts/restore +++ b/scripts/restore @@ -90,18 +90,19 @@ chown -R "$app":"$app" "$final_path" #================================================= # SPECIFIC RESTORATION #================================================= -# INSTALL ERLANG and ELIXIR +# INSTALL ERLANG AND ELIXIR #================================================= ynh_print_info "Installing erlang and elixir ..." if [ "$(lsb_release --codename --short)" == "jessie" ]; then - sudo apt install -y ../settings/conf/esl-erlang_21.2.6-1~debian~jessie_amd64.deb - sudo apt install -y ../settings/conf/elixir_1.8.1-2~debian~jessie_amd64.deb + echo "deb http://packages.erlang-solutions.com/debian jessie contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list elif [ "$(lsb_release --codename --short)" == "stretch" ]; then - sudo apt install -y ../settings/conf/esl-erlang_21.2.6-1~debian~stretch_amd64.deb - sudo apt install -y ../settings/conf/elixir_1.8.1-2~debian~stretch_amd64.deb + echo "deb http://packages.erlang-solutions.com/debian stretch contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list fi +sudo wget https://packages.erlang-solutions.com/debian/erlang_solutions.asc +sudo apt-key add erlang_solutions.asc +sudo rm erlang_solutions.asc #================================================= # REINSTALL DEPENDENCIES @@ -109,7 +110,7 @@ fi ynh_print_info "Reinstalling dependencies..." # Define and install dependencies -ynh_install_app_dependencies git build-essential openssl ssh sudo postgresql postgresql-contrib elixir erlang-dev erlang-parsetools erlang-xmerl erlang-tools +ynh_install_app_dependencies $pkg_dependencies #================================================= # RESTORE THE POSTGRESQL DATABASE @@ -118,14 +119,15 @@ ynh_print_info "Restoring the PostgreSQL database..." ynh_psql_test_if_first_run ynh_psql_create_user "$app" "$db_pwd" -ynh_psql_execute_as_root \ -"CREATE DATABASE $db_name ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER $app;" +ynh_psql_execute_as_root "CREATE DATABASE $db_name ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER $db_name;" ynh_psql_execute_as_root "\connect $db_name CREATE EXTENSION IF NOT EXISTS unaccent;" ynh_psql_execute_as_root "\connect $db_name CREATE EXTENSION IF NOT EXISTS pg_trgm;" ynh_psql_execute_as_root "\connect $db_name CREATE EXTENSION IF NOT EXISTS citext;" +ynh_psql_execute_as_root "\connect $db_name +CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";" ynh_psql_execute_file_as_root ./db.sql "$db_name" #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index fcdc0c6..e2cfa40 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -109,6 +109,8 @@ path_url=$(ynh_normalize_url_path $path_url) ynh_print_info "Upgrading source files..." # Download, check integrity, uncompress and patch the source from app.src +#ynh_setup_source "$final_path" + git clone --quiet https://git.pleroma.social/pleroma/pleroma "$final_path/upgrade" pushd "$final_path/upgrade" git checkout -b master @@ -138,18 +140,23 @@ then fi #================================================= -# INSTALL ERLANG and ELIXIR +# INSTALL ERLANG AND ELIXIR #================================================= ynh_print_info "Installing erlang and elixir ..." +#remove old erlang packages +sudo apt remove -y esl-erlang +sudo apt remove -y elixir + if [ "$(lsb_release --codename --short)" == "jessie" ]; then - sudo apt install -y ../conf/esl-erlang_21.2.6-1~debian~jessie_amd64.deb - sudo apt install -y ../conf/elixir_1.8.1-2~debian~jessie_amd64.deb + echo "deb http://packages.erlang-solutions.com/debian jessie contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list elif [ "$(lsb_release --codename --short)" == "stretch" ]; then - sudo apt install -y ../conf/esl-erlang_21.2.6-1~debian~stretch_amd64.deb - sudo apt install -y ../conf/elixir_1.8.1-2~debian~stretch_amd64.deb + echo "deb http://packages.erlang-solutions.com/debian stretch contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list fi +sudo wget https://packages.erlang-solutions.com/debian/erlang_solutions.asc +sudo apt-key add erlang_solutions.asc +sudo rm erlang_solutions.asc #================================================= # UPGRADE DEPENDENCIES @@ -157,7 +164,7 @@ fi ynh_print_info "Upgrading dependencies..." # install dependencies -ynh_install_app_dependencies git build-essential openssl ssh sudo postgresql postgresql-contrib elixir erlang-dev erlang-parsetools erlang-xmerl erlang-tools +ynh_install_app_dependencies $pkg_dependencies #================================================= # CREATE DEDICATED USER