diff --git a/README.md b/README.md index ea4341a..619538f 100644 --- a/README.md +++ b/README.md @@ -1,67 +1,51 @@ -# Invoice Ninja 4 for YunoHost + -:warning: You are invited to look at [InvoiceNinja 5](https://github.com/YunoHost-Apps/invoiceninja5_ynh) :warning: +# InvoiceNinja for YunoHost [![Integration level](https://dash.yunohost.org/integration/invoiceninja.svg)](https://dash.yunohost.org/appci/app/invoiceninja) ![](https://ci-apps.yunohost.org/ci/badges/invoiceninja.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/invoiceninja.maintain.svg) -[![Install Invoice Ninja with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=invoiceninja) +[![Install InvoiceNinja with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=invoiceninja) -> *This package allows you to install Invoice Ninja quickly and simply on a YunoHost server. +*[Lire ce readme en français.](./README_fr.md)* + +> *This package allows you to install InvoiceNinja quickly and simply on a YunoHost server. If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* ## Overview -Invoice Ninja is the #1 open-source platform to create & email invoices, track payments and expenses, and time billable tasks & projects for clients. -**Shipped version:** v4.5.19 +Create and email invoices, track payments and expenses, and time tasks + +**Shipped version:** 4.5.43~ynh1 + +**Demo:** https://app.invoiceninja.com/dashboard ## Screenshots -![](https://www.invoiceninja.com/wp-content/uploads/2015/11/Create-Invoices-in-Seconds.png) +![](./doc/screenshots/screenshot.png) -## Demo +## Disclaimers / important information -* [Official demo](https://app.invoiceninja.com/dashboard) +:warning: You are invited to look at [InvoiceNinja 5](https://github.com/YunoHost-Apps/invoiceninja5_ynh) :warning: -## Configuration +* Any known limitations, constrains or stuff not working, such as (but not limited to): + * There is no official LDAP support + * The first user gets created after installing Invoice Ninja + * Other users can be created from inside the application -Configuration happens in the application itself. +* Other infos that people should be aware of, such as: + * Configuration happens in the application itself. -## Documentation +## Documentation and resources - * Official documentation: https://docs.invoiceninja.com/index.html +* Official app website: https://invoiceninja.org +* Official admin documentation: https://docs.invoiceninja.com/index.html +* Upstream app code repository: https://github.com/invoiceninja/invoiceninja +* YunoHost documentation for this app: https://yunohost.org/app_invoiceninja +* Report a bug: https://github.com/YunoHost-Apps/invoiceninja_ynh/issues -## YunoHost specific features - -#### Multi-user support - -* There is no official LDAP support -* The first user gets created after installing Invoice Ninja -* Other users can be created from inside the application - -#### Supported architectures - -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/invoiceninja%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/invoiceninja/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/invoiceninja%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/invoiceninja/) - -## Limitations - -* Any known limitations. - -## Links - - * Report a bug: https://github.com/YunoHost-Apps/invoiceninja_ynh/issues - * App website: https://www.invoiceninja.org/ - * Upstream app repository: https://github.com/invoiceninja/invoiceninja - * YunoHost website: https://yunohost.org/ - -## TODOs - -* If possible, create initial user -* Test upgrade - ---- - -Developer info ----------------- +## Developer info Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/invoiceninja_ynh/tree/testing). @@ -71,3 +55,5 @@ sudo yunohost app install https://github.com/YunoHost-Apps/invoiceninja_ynh/tree or sudo yunohost app upgrade invoiceninja -u https://github.com/YunoHost-Apps/invoiceninja_ynh/tree/testing --debug ``` + +**More info regarding app packaging:** https://yunohost.org/packaging_apps \ No newline at end of file diff --git a/README_fr.md b/README_fr.md new file mode 100644 index 0000000..358efa9 --- /dev/null +++ b/README_fr.md @@ -0,0 +1,55 @@ +# InvoiceNinja pour YunoHost + +[![Niveau d'intégration](https://dash.yunohost.org/integration/invoiceninja.svg)](https://dash.yunohost.org/appci/app/invoiceninja) ![](https://ci-apps.yunohost.org/ci/badges/invoiceninja.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/invoiceninja.maintain.svg) +[![Installer InvoiceNinja avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=invoiceninja) + +*[Read this readme in english.](./README.md)* +*[Lire ce readme en français.](./README_fr.md)* + +> *Ce package vous permet d'installer InvoiceNinja rapidement et simplement sur un serveur YunoHost. +Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.* + +## Vue d'ensemble + + + +**Version incluse :** 4.5.43~ynh1 + +**Démo :** https://app.invoiceninja.com/dashboard + +## Captures d'écran + +![](./doc/screenshots/screenshot.png) + +## Avertissements / informations importantes + +:warning: You are invited to look at [InvoiceNinja 5](https://github.com/YunoHost-Apps/invoiceninja5_ynh) :warning: + +* Any known limitations, constrains or stuff not working, such as (but not limited to): + * There is no official LDAP support + * The first user gets created after installing Invoice Ninja + * Other users can be created from inside the application + +* Other infos that people should be aware of, such as: + * Configuration happens in the application itself. + +## Documentations et ressources + +* Site officiel de l'app : https://invoiceninja.org +* Documentation officielle de l'admin : https://docs.invoiceninja.com/index.html +* Dépôt de code officiel de l'app : https://github.com/invoiceninja/invoiceninja +* Documentation YunoHost pour cette app : https://yunohost.org/app_invoiceninja +* Signaler un bug : https://github.com/YunoHost-Apps/invoiceninja_ynh/issues + +## Informations pour les développeurs + +Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/invoiceninja_ynh/tree/testing). + +Pour essayer la branche testing, procédez comme suit. +``` +sudo yunohost app install https://github.com/YunoHost-Apps/invoiceninja_ynh/tree/testing --debug +ou +sudo yunohost app upgrade invoiceninja -u https://github.com/YunoHost-Apps/invoiceninja_ynh/tree/testing --debug +``` + +**Plus d'infos sur le packaging d'applications :** https://yunohost.org/packaging_apps \ No newline at end of file diff --git a/conf/.env b/conf/.env index 6e3f144..e251111 100644 --- a/conf/.env +++ b/conf/.env @@ -1,16 +1,15 @@ +# do not run the setup wizard +PRECONFIGURED_INSTALL=true + APP_ENV=production APP_DEBUG=false -APP_LOCALE=__LANGUAGE__ APP_URL=https://__DOMAIN____PATH__/index.php APP_KEY=__APP_KEY__ APP_CIPHER=AES-256-CBC - -# used to connect with the mobile app -API_SECRET=__API_SECRET__ - -REQUIRE_HTTPS=true +APP_LOCALE=__LANGUAGE__ DB_TYPE=mysql +#DB_STRICT=false DB_HOST=localhost DB_DATABASE=__DB_NAME__ DB_USERNAME=__DB_USER__ @@ -21,15 +20,91 @@ MAIL_PORT=25 MAIL_ENCRYPTION= MAIL_HOST=localhost MAIL_USERNAME= -MAIL_FROM_NAME="__MAIL_FROM_NAME__" MAIL_FROM_ADDRESS=__MAIL_FROM_ADDRESS__ +MAIL_FROM_NAME="__MAIL_FROM_NAME__" MAIL_PASSWORD= -PHANTOMJS_CLOUD_KEY=a-demo-key-with-low-quota-per-ip-address -PHANTOMJS_SECRET=__PHANTOMJS_KEY__ - MAILGUN_DOMAIN= MAILGUN_SECRET= -# do not run the setup wizard -PRECONFIGURED_INSTALL=true +#POSTMARK_API_TOKEN= + +PHANTOMJS_CLOUD_KEY='a-demo-key-with-low-quota-per-ip-address' +PHANTOMJS_SECRET=__PHANTOMJS_KEY__ + +LOG=single +REQUIRE_HTTPS=true +API_SECRET=__API_SECRET__ + +#TRUSTED_PROXIES= + +#SESSION_DRIVER= +#SESSION_DOMAIN= +#SESSION_ENCRYPT= +#SESSION_SECURE= + +#CACHE_DRIVER= +#CACHE_HOST= +#REDIS_HOST= +#CACHE_PORT1= +#CACHE_PORT2= + +#GOOGLE_CLIENT_ID= +#GOOGLE_CLIENT_SECRET= +#GOOGLE_OAUTH_REDIRECT=http://ninja.test/auth/google + +GOOGLE_MAPS_ENABLED=true +#GOOGLE_MAPS_API_KEY= + +# Create a cookie to stay logged in +#REMEMBER_ME_ENABLED=true + +# Immediately expire cookie on the browser closing +#SESSION_EXPIRE_ON_CLOSE=false + +# The app automatically logs the user out after this number of seconds +#AUTO_LOGOUT_SECONDS=28800 + +#S3_KEY= +#S3_SECRET= +#S3_REGION= +#S3_BUCKET= + +#RACKSPACE_USERNAME= +#RACKSPACE_KEY= +#RACKSPACE_CONTAINER= +#RACKSPACE_REGION= + +#RACKSPACE_TEMP_URL_SECRET= + +# If this is set to anything, the URL secret will be set the next +# time a file is downloaded through the client portal. +# Only set this temporarily, as it slows things down. +#RACKSPACE_TEMP_URL_SECRET_SET= + +#DOCUMENT_FILESYSTEM= + +#MAX_DOCUMENT_SIZE # KB +#MAX_EMAIL_DOCUMENTS_SIZE # Total KB +#MAX_ZIP_DOCUMENTS_SIZE # Total KB (uncompressed) +#DOCUMENT_PREVIEW_SIZE # Pixels + +#WEPAY_CLIENT_ID= +#WEPAY_CLIENT_SECRET= +#WEPAY_ENVIRONMENT=production # production or stage +#WEPAY_AUTO_UPDATE=true # Requires permission from WePay +#WEPAY_FEE_PAYER=payee +#WEPAY_APP_FEE_CC_MULTIPLIER=0 +#WEPAY_APP_FEE_ACH_MULTIPLIER=0 +#WEPAY_APP_FEE_FIXED=0 +#WEPAY_THEME='{"name":"Invoice Ninja","primary_color":"0b4d78","secondary_color":"0b4d78","background_color":"f8f8f8","button_color":"33b753"}' # See https://www.wepay.com/developer/reference/structures#theme + + +#BLUEVINE_PARTNER_UNIQUE_ID= +#BLUEVINE_PARTNER_TOKEN= + +#CLOUDFLARE_DNS_ENABLED=false +#CLOUDFLARE_API_KEY= +#CLOUDFLARE_EMAIL= +#CLOUDFLARE_TARGET_IP_ADDRESS= +#CLOUDFLARE_ZONE_IDS={} diff --git a/conf/app.src b/conf/app.src index 27e1a0b..12ca766 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,6 +1,6 @@ -SOURCE_URL=https://download.invoiceninja.com/ninja-v4.5.19.zip -SOURCE_SUM=5a3ec7ab747bb371e7788b215be290eb489b11dea2ba1e1bff7516e7c077364e +SOURCE_URL=https://download.invoiceninja.com/ninja-v4.5.43.zip +SOURCE_SUM=475562af870f6fed91a1d8edf9c2c159c0f404f6bf0d57ac9dfa93b80bade6b3 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=zip SOURCE_IN_SUBDIR=true -SOURCE_FILENAME=invoiceninja-v4.5.19.zip +SOURCE_FILENAME=invoiceninja-v4.5.43.zip diff --git a/doc/.gitkeep b/doc/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md new file mode 100644 index 0000000..93cea42 --- /dev/null +++ b/doc/DISCLAIMER.md @@ -0,0 +1,9 @@ +:warning: You are invited to look at [InvoiceNinja 5](https://github.com/YunoHost-Apps/invoiceninja5_ynh) :warning: + +* Any known limitations, constrains or stuff not working, such as (but not limited to): + * There is no official LDAP support + * The first user gets created after installing Invoice Ninja + * Other users can be created from inside the application + +* Other infos that people should be aware of, such as: + * Configuration happens in the application itself. diff --git a/doc/screenshots/.gitkeep b/doc/screenshots/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/doc/screenshots/screenshot.png b/doc/screenshots/screenshot.png new file mode 100644 index 0000000..ddafd75 Binary files /dev/null and b/doc/screenshots/screenshot.png differ diff --git a/manifest.json b/manifest.json index e4fbcb0..483eb38 100644 --- a/manifest.json +++ b/manifest.json @@ -5,8 +5,15 @@ "description": { "en": "Create and email invoices, track payments and expenses, and time tasks" }, - "version": "4.5.19~ynh1", + "version": "4.5.43~ynh1", "url": "https://invoiceninja.org", + "upstream": { + "license": "AAL", + "website": "https://invoiceninja.org", + "demo": "https://app.invoiceninja.com/dashboard", + "admindoc": "https://docs.invoiceninja.com/index.html", + "code": "https://github.com/invoiceninja/invoiceninja" + }, "license": "AAL", "maintainer": { "name": "Sebastian Gumprich", @@ -14,7 +21,7 @@ "url": "https://github.com/YunoHost-Apps/invoiceninja_ynh/" }, "requirements": { - "yunohost": ">= 4.1.0" + "yunohost": ">= 4.1.3" }, "multi_instance": true, "services": [ diff --git a/scripts/backup b/scripts/backup index c4314ac..89da2d0 100755 --- a/scripts/backup +++ b/scripts/backup @@ -58,7 +58,7 @@ ynh_backup --src_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" #================================================= # SPECIFIC BACKUP #================================================= -# BACKUP A CRON FILE +# BACKUP VARIOUS FILES #================================================= ynh_backup --src_path="/etc/cron.d/$app" diff --git a/scripts/install b/scripts/install index ff8a5a3..f25c0be 100755 --- a/scripts/install +++ b/scripts/install @@ -123,7 +123,7 @@ ynh_script_progression --message="Adding a configuration file..." ynh_add_config --template="../conf/.env" --destination="$final_path/.env" -chmod 400 "$final_path/.env" +chmod 600 "$final_path/.env" chown $app:$app "$final_path/.env" #================================================= @@ -135,6 +135,11 @@ pushd "$final_path" # Run the database migrations and initially fill the db php$phpversion artisan migrate --force php$phpversion artisan db:seed --force + + # thanks to cloudron for this! + # This comments the check at https://github.com/invoiceninja/invoiceninja/blob/cadd1a3b44aed3dc5bd28d623efd4bb51c6d895a/app/Http/Controllers/AppController.php#L47 + # We pre-setup various parts already thus the .env file has to exist + sed -e "s/^.*app is already configured.*/ /" -i app/Http/Controllers/AppController.php popd #================================================= diff --git a/scripts/remove b/scripts/remove index 931c0da..de8e21c 100755 --- a/scripts/remove +++ b/scripts/remove @@ -59,9 +59,9 @@ ynh_remove_fpm_config #================================================= # SPECIFIC REMOVE #================================================= -# REMOVE THE CRON FILE +# REMOVE VARIOUS FILES #================================================= -ynh_script_progression --message="Removing the cron file..." +ynh_script_progression --message="Removing various files..." # Remove a cron file ynh_secure_remove --file="/etc/cron.d/$app" diff --git a/scripts/restore b/scripts/restore index 7508b32..7f41b5c 100755 --- a/scripts/restore +++ b/scripts/restore @@ -20,7 +20,7 @@ ynh_abort_if_errors #================================================= # LOAD SETTINGS #================================================= -ynh_script_progression --message="Loading settings..." +ynh_script_progression --message="Loading installation settings..." app=$YNH_APP_INSTANCE_NAME @@ -48,7 +48,7 @@ test ! -d $final_path \ #================================================= # RESTORE THE NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Restoring the NGINX configuration..." +ynh_script_progression --message="Restoring the NGINX web server configuration..." ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" @@ -88,9 +88,9 @@ ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql #================================================= -# RESTORE THE CRON FILE +# RESTORE VARIOUS FILES #================================================= -ynh_script_progression --message="Restoring the cron file..." +ynh_script_progression --message="Restoring various files..." ynh_restore_file --origin_path="/etc/cron.d/$app" diff --git a/scripts/upgrade b/scripts/upgrade index eefce3f..70a2965 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -45,7 +45,7 @@ ynh_script_progression --message="Backing up the app before upgrading (may take # Backup the current version of the app ynh_backup_before_upgrade ynh_clean_setup () { - # restore it if the upgrade fails + # Restore it if the upgrade fails ynh_restore_upgradebackup } # Exit if an error occurs during the execution of the script @@ -82,7 +82,7 @@ fi ynh_script_progression --message="Making sure dedicated system user exists..." # Create a dedicated user (if not existing) -ynh_system_user_create --username=$app +ynh_system_user_create --username=$app --home_dir=$final_path #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE