Further de-Cloudron-ing of the content

This commit is contained in:
Nathan Schneider 2021-03-14 22:44:43 +00:00
parent 11c6212fb7
commit 64d5ca0d8c
114 changed files with 6 additions and 5955 deletions

View File

@ -1,37 +0,0 @@
# <img src="/img/ackee-logo.png" width="25px"> Ackee App
## About
Ackee is a Self-hosted, Node.js based analytics tool for those who care about privacy.
* Questions? Ask in the [Cloudron Forum - CouchPotato](https://forum.cloudron.io/category/118/couchpotato)
* [Ackee Website](https://ackee.electerious.com/)
* [Ackee docs](https://docs.ackee.electerious.com/)
* [Ackee issue tracker](https://github.com/electerious/Ackee/issues)
## Admin Password
The admin password can be changed by editing `/app/data/env` using the [File manager](/apps/#file-manager). Be
sure to restart the app after making the change.
## Adding a domain
* First, add a domain inside Ackee.
* Add [CORS configuration](https://docs.ackee.electerious.com/#/docs/CORS%20headers#platforms-as-a-service-configuration) by
editing `/app/data/env` and adding your website in `ACKEE_ALLOW_ORIGIN` and restart the app.
* Embed the Ackee tracker.js script in your website.
## Data collection
Ackee won't track personal information (device/browser info) by default, but it has the ability to do so in a privacy focused way.
See Ackee's [docs](https://github.com/electerious/Ackee/blob/master/docs/Anonymization.md#personal-data) for more information.
To enable detailed tracking, pass the `data-ackee-opts` to the script tag:
```
<script async src="https://example.com/ackee-tracker.min.js"
data-ackee-server="https://example.com"
data-ackee-domain-id="hd11f820-68a1-11e6-8047-79c0c2d9bce0"
data-ackee-opts='{ "ignoreLocalhost": true, "detailed": true }'></script>
```

View File

@ -1,60 +0,0 @@
# <img src="/img/adguard-home-logo.png" width="25px"> AdGuard Home App
## About
AdGuard Home is a network-wide software for blocking ads & tracking.
* Questions? Ask in the [Cloudron Forum - AdGuard Home](https://forum.cloudron.io/category/113/adguard-home)
* [AdGuard Home Website](https://adguard.com/en/adguard-home/overview.html)
* [AdGuard Home forum](https://forum.adguard.com/index.php)
* [AdGuard Home issue tracker](https://github.com/AdguardTeam/AdGuardHome/issues)
## Change Password
To change the AdGuard Home password, one must use the `htpasswd` tool.
First, open the [Web terminal](/apps#web-terminal) and run the following command:
```
$ htpasswd -nbB admin mypassword
admin:$2y$05$zsr9LdcnDQ3TCBLuyljJHer6XS03ute6GiuA8H7ZjvKuJikud/wk2
```
Copy the password part (after the ':') and put it in `/app/data/AdGuardHome.yaml`
(use the [File Manager](/apps/#file-manager). It's a good idea to quote the password
field. So, it will look like this:
```
users:
- name: admin
password: "$2y$05$zsr9LdcnDQ3TCBLuyljJHer6XS03ute6GiuA8H7ZjvKuJikud/wk2"
```
The app must be restarted for the password change to take effect.
## Securing Installation
While the admin page is password protected, the DNS server is not. This is because DNS has
no notion of authentication. Leaving your DNS server open will lead to it getting
abused for conducting DDoS reflection and amplification attacks. Many VPS providers
will likely send you a warning/caution email, if you run a open DNS resolver.
We strongly recommend securing your installation in the following ways:
* When available, use your VPS providers firewall functionality to restrict access to
Port 53 (TCP & UDP).
* In the AdGuard Home dashboard, go to `Settings` -> `DNS settings`. Scroll to the bottom
for `Access settings` and set a list of clients that can access the DNS server. You
can also use [ipdeny lists](https://www.ipdeny.com/ipblocks/) to set access and block lists.
<center>
<img src="/img/adguard-access-control.png" class="shadow">
</center>
## DoH
DNS over HTTPS is enabled by default. Cloudron does not support DNS over TLS yet.
Note that there is a Settings page that lets you enable DoH but you won't able to save
that page since this is [not implemented yet](https://github.com/AdguardTeam/AdGuardHome/issues/1009).
This is fine because DoH is enabled in the configs.

View File

@ -1,17 +0,0 @@
# <img src="/img/alltube-logo.png" width="25px"> Alltube App
## About
Alltube provides a Web GUI for youtube-dl. Despite it's name, Alltube can be used to download
videos from all kinds of sources including Dailymotion, Vimeo, SoundCloud, Facebook and Instagram.
* Questions? Ask in the [Cloudron Forum - AllTube](https://forum.cloudron.io/category/63/alltube)
* [AllTube Website](https://alltubedownload.net)
* [AllTube issue tracker](https://github.com/Rudloff/alltube/issues)
## Customization
Use the [File Manager](/apps#file-manager) to edit `/app/data/config.yml` to add custom configuration.
See the [upstream file](https://github.com/Rudloff/alltube/blob/master/config/config.example.yml)
for reference.

View File

@ -1,58 +0,0 @@
# <img src="/img/ampache-logo.png" width="25px"> Ampache App
## About
Ampache is a web based audio/video streaming application and file manager. Allowing you to access your music & videos
from anywhere, using almost any internet enabled device.
* Questions? Ask in the [Cloudron Forum - Ampache](https://forum.cloudron.io/category/110/ampache)
* [Ampache Website](http://www.ampache.org)
* [Ampache issue tracker](https://github.com/ampache/ampache/issues)
## Import Audio Files
Ampache works with audio catalogs. To import songs into Ampache:
* Create a directory for it through the [File Manager](/apps#file-manager). For example create `/app/data/catalogs/music`.
You can upload new audio files to this folder now or later.
* Create a new catalog. You can do this by clicking the `Admin` icon (next to the gear icon).
<img src="/img/ampache-catalog.png" class="shadow">
* Set the catalog type to `local`
* Set the directory path `/app/data/catalogs/music` in the path text input
* Trigger a catalog update via the ampache UI to update the catalog.
## Customization
Use the [Web terminal](/apps#web-terminal) or the [File Manager](/apps#file-manager)
to edit custom configuration under `/app/data/config/ampache.cfg.php`. Full documentation
is available [here](https://github.com/ampache/ampache/wiki/Basic).
## Playback issues
For larger audio files, ampache often needs more memory to play them.
Unlike other php based apps, increasing the memory limit in php.ini will get overwritten.
The correct file for ampache is `/app/data/config/ampache.cfg.php`:
```
memory_limit = 512M
```
## CLI
[Ampache CLI](https://github.com/ampache/ampache/wiki/CLI) can be used to run various
common management tasks. You can use the CLI using the [Web terminal](/apps#web-terminal)
as follows:
```
sudo -u www-data /usr/bin/php /app/code/bin/install/catalog_update.inc
```
## Features
Ampache has a lot of exciting features that are worth exploring further:
* [Subscribe to Podcasts](https://github.com/ampache/ampache/wiki/Podcasts)
* [Icecast compatible Channels](https://github.com/ampache/ampache/wiki/Channels)
* [Democratic play](https://github.com/ampache/ampache/wiki/Democratic)
* [Subsonic API](https://github.com/ampache/ampache/wiki/subsonic)

View File

@ -1,21 +0,0 @@
# <img src="/img/astral-logo.png" width="25px"> Astral App
## About
Astral is an open source application that allows you to organize your GitHub Stars with ease.
* Questions? Ask in the [Cloudron Forum - Astral](https://forum.cloudron.io/category/120/astral)
* [Astral Website](https://astralapp.com/)
* [Astral issue tracker](https://github.com/astralapp/astral/)
## Setup
Astral requires a Github OAuth Application. You are able to create one from you Github account and then adjust the `env` file to use this application:
- Go to [Github -> Settings -> OAuth Apps](https://github.com/settings/developers) and create a new OAuth app.
- Enter `Astral`, `astral.yourcloudron.com`, and `https://astral.yourcloudron.com/auth/github/callback` for Application Name, Homepage URL, and Authorization callback URL, respectively.
- Generate a new Client Secret, make note of this, you'll only see it once.
- Use the app's [File Manager](/apps#file-manager) to edit `/app/data/env` file. Update the `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` values with your Github OAuth App's Client ID and Client Secret.
- Restart the app.
- Login with Github!

View File

@ -1,34 +0,0 @@
# <img src="/img/bitwardenrs-logo.png" width="25px"> Bitwarden_rs App
## About
Bitwarden is an Open Source Password Management solution for individuals, teams, and business organizations.
Bitwarde_rs is an unofficial Bitwarden compatible server written in Rust, fully compatible with the client apps.
* Questions? Ask in the [Cloudron Forum - Bitwarden_rs](https://forum.cloudron.io/category/64/bitwardenrs)
* [Bitwarden_rs Website](https://github.com/dani-garcia/bitwarden_rs)
* [Bitwarden_rs issue tracker](https://github.com/dani-garcia/bitwarden_rs/issues)
## Users
Bitwarden does not support Single Sign On. This is by design for security reasons. You must create a new password for your Bitwarden account.
By default, open registration is enabled. This can be changed via environment variables by editing `/app/data/config.env` using
the [File Manager](/apps/#file-manager).
Uncomment the following lines to disable user signup and enable invite only setup:
```
export SIGNUPS_ALLOWED=false
export INVITATIONS_ALLOWED=true
```
## YubiKey
Bitwarden_rs has support for [YubiKeys](https://www.yubico.com/). To make use of them, just specify your client id and secret key in the `/app/data/config.env` and restart the app.
```
export YUBICO_CLIENT_ID="clientId"
export YUBICO_SECRET_KEY="secretKey"
```

View File

@ -1,36 +0,0 @@
# <img src="/img/bookstack-logo.png" width="25px"> BookStack App
## About
BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information.
* Questions? Ask in the [Cloudron Forum - BookStack](https://forum.cloudron.io/category/29/bookstack)
* [BookStack Website](https://www.bookstackapp.com)
* [BookStack discord](https://discord.com/invite/ztkBqR2)
* [BookStack issue tracker](https://github.com/BookStackApp/BookStack/issues)
## Admin
When using Cloudron user management, BookStack's built-in admin user is disabled.
See the [BookStack docs](https://www.bookstackapp.com/docs/admin/ldap-auth/) for
more information. In addition, the app is pre-setup to give admin status to all users.
You can change this by going to `Settings` -> `Registration` and adjusting the value of
`Default user role after registration`. This way, the first user to login will be an admin
and the roles of rest of the users can be managed inside BookStack.
## Customization
Use the [File Manager](/apps#file-manager) to edit custom configuration in `/app/data/env`.
See [BookStack customization docs](https://www.bookstackapp.com/docs/admin/visual-customisation/)
for more information.
## External registration
Bookstack does not allow external users to register when Cloudron user management (LDAP)
is enabled. If you require external registration, install Bookstack with Cloudron user
management disabled.
See the [Bookstack docs](https://www.bookstackapp.com/docs/admin/third-party-auth/) to
enable 3rd party auth like Google, GitHub, Twitter, Facebook & others.

View File

@ -1,52 +0,0 @@
# <img src="/img/build-service-logo.png" width="25px"> Build Service App
## Purpose
Cloudron can be used to build and install [custom apps](/custom-apps/tutorial/) using docker images.
Building docker images locally might require many CPU resources depending on the app. Pushing docker images
can also be network intensive (for e.g, if you are working from a coffee shop).
This app tries to solve the above situation by simply building and pushing docker images on the Cloudron where
it is installed. This app merely acts a proxy for authenticated users to build and push docker images to a configured
registry.
!!! note "Do not install on production Cloudron"
Installing this app on a production Cloudron is risky and is not recommended.
## Configuring CLI
Cloudron CLI can be configured to use the build service using `cloudron build --set-build-service`.
The CLI will then ask for the Cloudron credentials on which the build service is installed.
```
$ cloudron build --set-build-service
Enter build service URL: https://buildbot.example.com
Using build service https://buildbot.cloudron.ml
Building girish/nodejs-app:20191113-015207-340e7f520
Uploading source tarball...
Build Service login (https://buildbot.example.com):
Username: username
Password: *********
Login successful.
Step 1/8 : FROM cloudron/base:2.0.0@sha256:96cb00e968d7f78ff6c7f6a373ce184e0f94ad4a5298d849031201bf4a9e3bf6
---> 534bd0efda10
Step 2/8 : RUN mkdir -p /app/code
---> Running in 75e1b25ffd14
...
```
## Private registry auth
The build service requires authentication information to be able to push images to a private
registry. Credentials can be set by opening the [Web terminal](/apps#web-terminal)
and editing `/app/data/docker.json`. Be sure to restart the app after setting the credentials.
```
{
"docker.io": {
"username": "username",
"password": "mypassword"
}
}
```

View File

@ -1,18 +0,0 @@
# <img src="/img/calibre-web-logo.png" width="25px"> Calibre Web App
## About
Calibre Web is a web app for browsing, reading and downloading eBooks stored in a Calibre database.
* Questions? Ask in the [Cloudron Forum - Calibre Web](https://forum.cloudron.io/category/105/calibre)
* [Calibre Web Website](https://github.com/janeczku/calibre-web)
* [Calibre Web issue tracker](https://github.com/janeczku/calibre-web/issues)
## Importing existing calibre database
To import an existing Calibre database, do the following:
* Stop the app
* Copy the database into `/app/data/library` using the File Manager
* Start the app

View File

@ -1,46 +0,0 @@
# <img src="/img/collabora-logo.png" width="25px"> Collabora App
## About
Collabora Online is a collaborative online office suite based on LibreOffice technology.
* Questions? Ask in the [Cloudron Forum - Collabora Office](https://forum.cloudron.io/category/57/collabora-office)
* [Collabora Office Website](https://www.collaboraoffice.com)
* [Collabora Office forum](https://forum.collaboraonline.com/)
* [Collabora Office issue tracker](https://github.com/CollaboraOnline/online/issues)
## Setup
The Collabora App can be used to provide rich document editing functionality for
files hosting inside [NextCloud](/apps/nextcloud).
* Install [NextCloud](/store/com.nextcloud.cloudronapp.html) from
the App Store. For this example, we assume NextCloud was installed at `nextcloud.smartserver.space`.
* Install [Collabora](/store/com.collaboraoffice.coudronapp.html) from the App Store
* In the Collabora setup UI, provide the domain of the NextCloud installation.
<img src="/img/collabora-settings.png" class="shadow">
* Enable the `Collabora Online` app in NextCloud. This app is under the `Office & text`
category in the NextCloud app store. Once installed, go to NextCloud `Settings` and
select the `Collabora Office` item on the left pane. Enter the domain of the collabora
installation.
<img src="/img/nextcloud-collabora.png" class="shadow">
* You should now be able to view and edit rich text documents right inside NextCloud.
<img src="/img/nextcloud-collabora-editor.png" class="shadow">
## Spell check
The empty document templates that are provided by default in Nextcloud are German documents. For
this reason, it might appear that the spell-checker is flagging a lot of spelling errors.
The language of a document can be changed by clicking the menu bar icon on the far right (three
horizontal lines). Then `Tools` -> `Language` -> `For all text`.
<img src="/img/collabora-change-language.png" class="shadow">

View File

@ -1,33 +0,0 @@
# <img src="/img/commento-logo.png" width="25px"> Commento App
## About
Commento is a fast, privacy-focused commenting platform.
* Questions? Ask in the [Cloudron Forum - Commento](https://forum.cloudron.io/category/40/commento)
* [Commento Website](https://commento.io/)
## Usermanagement
Commento does not integrate with Cloudron usermanagement but instead has two types of users.
1. **Owners** which can manage domains where comments may be shown as well as act as moderators.
2. **Commentors** which have to be created by every user wanting to write a comment
Owner signup is enabled by default and can be done when visiting the domain where a Commento instance is installed at.
To disable open owner registration, to change this, edit `/app/data/commento.conf`
```
COMMENTO_FORBID_NEW_OWNERS=true
```
## Sign-in with Google
Commento also supports OAuth sign-in with Google for users wanting to comment.
To enable this feature, create a Google API secret and key pair and put those into `/app/data/commento.conf`:
```
COMMENTO_GOOGLE_KEY=<your key>
COMMENTO_GOOGLE_SECRET=<your secret>
```

View File

@ -1,41 +0,0 @@
# <img src="/img/confluence-logo.png" width="25px"> Confluence App
## About
Confluence is purpose-built for teams that need a secure and reliable way to collaborate on mission-critical projects.
* Questions? Ask in the [Cloudron Forum - Confluence](https://forum.cloudron.io/category/16/confluence)
* [Confluence Website](https://www.atlassian.com/software/confluence)
* [Confluence forum](https://community.atlassian.com/)
## Completing the installation
To finish the installation, do the following:
* Select Production Installation
* Add your license key.
* Select `PostgreSQL` as External Database.
* Choose `By connection string`.
* Use the [File Manager](/apps/#file-manager) and open `/app/data/credentials.txt` to get database settings.
## Adminstration check list
* Disable `Backup Confluence` Schedule Jobs. The Cloudron backups up confluence already.
* To enable LDAP, go to `Confluence Administration`:
* `Users & Security` -> `User directories`
* `Add Directory` -> `Internal with LDAP authentication`
* Use the [File Manager](/apps/#file-manager) and open `/app/data/credentials.txt` to get LDAP settings.
* You can make Cloudron users admin once they log in to Confluence and appear in user listing via LDAP
* To configure mail:
* `Mail Servers` -> `Add SMTP mail`
* Use the [File Manager](/apps/#file-manager) and open `/app/data/credentials.txt` to get LDAP settings.
## Oracle Java
OpenJDK is [not supported](https://confluence.atlassian.com/confkb/is-openjdk-supported-by-confluence-297667642.html)
by Confluence. For this reason, the Cloudron app uses Oracle Java.

View File

@ -1,10 +0,0 @@
# <img src="/img/couchpotato-logo.png" width="25px"> CouchPotato App
## About
CouchPotato automatically find movies you want to watch.
* Questions? Ask in the [Cloudron Forum - CouchPotato](https://forum.cloudron.io/category/118/couchpotato)
* [CouchPotato Website](https://couchpota.to/)
* [CouchPotato Forum](https://couchpota.to/forum/)

View File

@ -1,25 +0,0 @@
# <img src="/img/directus-logo.png" width="25px"> Directus App
## About
Directus is an Instant App & API for your SQL Database.
* Questions? Ask in the [Cloudron Forum - Directus](https://forum.cloudron.io/category/101/directus)
* [Directus Website](https://directus.io)
* [Directus issue tracker](https://github.com/directus/directus/issues)
## CLI
CLI commands can be executed by opening a [Web terminal](/apps#web-terminal):
```
# cd /app/code
# sudo -u www-data -- /app/code/bin/directus
```
## Multi-tenancy
While Directus supports [multiple projects](https://docs.directus.io/guides/projects.html), the Cloudron package does not.
This is because the Cloudron package is designed with the app having access to only a single database. To create another
project, simply make a new installation of Directus.

View File

@ -1,67 +0,0 @@
# <img src="/img/discourse-logo.png" width="25px"> Discourse App
## About
Discourse is a platform for community discussion. Free, open, simple.
* Questions? Ask in the [Cloudron Forum - Discourse](https://forum.cloudron.io/category/33/discourse)
* [Discourse Website](https://www.discourse.org/)
* [Discourse forum](https://meta.discourse.org/)
## Installing plugins
To install a plugin, open a [Web terminal](/apps#web-terminal) and run the following
commands:
```
cd /app/code/plugins
git clone <plugin-repo>
cd /app/code
bundle exec rake plugin:install_gems['REPLACE_WITH_PLUGINS_NAME']
# the line below will force assets to be rebuilt on next application restart
rm -rf /run/discourse/public/assets/*
```
Restart the application for the assets to get re-built.
If the plugin modifies the posts in some way, you might want to [rebake posts](#rebaking-posts).
## Changing root account email
The email of the root account is `root@cloudron.local`. Discourse sends an activation email to the old
email address to switch email. Since we don't have access to the default email account, we have to use
the rails console to switch the email.
Open a [Web terminal](/apps#web-terminal) and run the following commands:
```
# sudo -E -u cloudron bundle exec script/rails console
irb(main):001:0> u = User.find_by_username("root")
irb(main):002:0> u.email = "YOUR_NEW_EMAIL_ADDRESS"
irb(main):003:0> u.email_tokens.create(email: u.email)
irb(main):004:0> u.activate
irb(main):005:0> u.save!
```
## Changing domain
When changing the domain of an existing discourse installation, Cloudron automatically
rebuilds the assets. However, the posts in the forum are not re-written. To rebake
the posts, open a [Web terminal](/apps#web-terminal) and run the following
command:
```
sudo -E -u cloudron bundle exec ruby script/discourse remap old.domain.com new.domain.com
```
## Rebaking posts
To rebuild all posts (for example, to apply formatting provided by a newly installed plugin to
old posts), open a [Web terminal](/apps#web-terminal) and run the following
command:
```
sudo -E -u cloudron bundle exec rake posts:rebake
```

View File

@ -1,87 +0,0 @@
# <img src="/img/docker-registry-logo.png" width="25px"> Docker Registry App
## About
Docker Registry is used for storing and distributing Docker and OCI images using the OCI Distribution Specification.
* Questions? Ask in the [Cloudron Forum - Docker Registry](https://forum.cloudron.io/category/119/docker-registry)
* [Docker Registry docs](https://docs.docker.com/registry/)
* [Docker Registry issue tracker](https://github.com/docker/distribution)
## User Management
## Cloudron Directory
When Cloudron user management is enabled, simply use the Cloudron username and password to login.
## Without Cloudron Directory
When Cloudron user management is disabled, the registry is setup with no authentication. The main use case for this is to
have the registry authenticate with an external provider such as GitLab instead of Cloudron. See the GitLab section
below on how to set this up.
### GitLab Integration
The following steps can be used to setup [GitLab container registry](https://about.gitlab.com/blog/2016/05/23/gitlab-container-registry/).
* Create a [volume](/storage/#volumes) named `registry-shared`.
* Attach volume name `registry-shared` to both GitLab and Docker Registry apps. Be sure to uncheck the `Read Only` checkbox.
* Create folders `containers` and `certs` on the host filesystem inside the path that is assigned to
the `registry-shared` volume.
* Run the following commands inside the certs folder:
```bash
openssl req -nodes -newkey rsa:2048 -keyout registry-auth.key -out registry-auth.csr -subj "/CN=gitlab-issuer"
openssl x509 -in registry-auth.csr -out registry-auth.crt -req -signkey registry-auth.key -days 365000
chmod 777 registry-auth.key registry-auth.crt registry-auth.csr
```
* Modify `/app/data/config.yml` of the Docker Registry app using the [File manager](/apps/#file-manager) by altering the auth part to resemble the
following:
```yaml
auth:
token:
realm: https://<GITLAB_HOST>/jwt/auth
service: container_registry
issuer: gitlab-issuer
rootcertbundle: /media/registry-shared/certs/registry-auth.crt
```
Change the 'rootdirectory' value inside the same config file to:
```bash
/media/registry-shared/containers
```
Save the file and restart the app.
* Modify `/app/data/gitlab.yml` of the GitLab app by adding the following lines (some of them
might already be there, so skip them):
```yaml
production:
<<: *base
registry:
enabled: true
host: <DOCKER_REGISTRY_HOST>
port: 443
api_url: https://<DOCKER_REGISTRY_HOST>
key: /media/registry-shared/certs/registry-auth.key
path: /media/registry-shared/containers
issuer: gitlab-issuer
```
Save the file and restart the app.
## Garbage collector
The [Garbage Collector](https://docs.docker.com/registry/garbage-collection/) is automatically run once
a day. You can always trigger an immediate collection using the following command:
```
/usr/local/bin/gosu cloudron:cloudron /app/code/registry garbage-collect /app/data/config.yml
```

View File

@ -1,95 +0,0 @@
# <img src="/img/dokuwiki-logo.png" width="25px"> Dokuwiki App
## About
DokuWiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database
* Questions? Ask in the [Cloudron Forum - DokuWiki](https://forum.cloudron.io/category/60/dokuwiki)
* [DokuWiki Website](https://www.dokuwiki.org)
* [DokuWiki forum](https://forum.dokuwiki.org/)
* [DokuWiki issue tracker](https://github.com/splitbrain/dokuwiki/issues)
## User management
### Cloudron Directory
When Cloudron user management is enabled, only Cloudron users can login to the wiki and
edit pages.
To make a Cloudron user an admin, use the [File Manager](/apps#file-manager)
and edit `/app/data/conf/local.php`:
```
<?php
$conf['superuser'] = "userid1,userid2";
```
To make all Cloudron admins as wiki admins edit `/app/data/conf/local.php` and add:
```
<?php
$conf['plugin']['authldap']['mapping']['grps'] = array('memberof' => '/CN=(.+?),/i');
$conf['superuser'] = '@admins';
```
By default, the pages are readable by all. The wiki can be made readable
only for logged in users by changing the ACL Rules for the `@ALL` group
in dokuwiki's `Access Control List Management` admin page.
### Without Cloudron SSO
When not using Cloudron authentication, first register a new user.
To make the new user an admin, use the [File Manager](/apps#file-manager)
and edit `/app/data/conf/local.php`:
```
<?php
$conf['superuser'] = "userid1,userid2";
```
#### Disabling registration
To [disable registration](https://www.dokuwiki.org/faq:regdisable), `Admin` -> `Configuration Manager` -> `Disable DokuWiki actions`
and check `Register`.
## Configuring
At a high level, Dokuwiki applies [configuration](https://www.dokuwiki.org/config) as follows:
* `conf/foo.conf` default value that comes with Dokuwiki. **Do not make changes to these files, they will be lost across updates.**
* `conf/foo.protected.conf` settings applied by the Cloudron package. **Do not make changes to these files, they will be lost across updates.**
* `conf/foo.local.conf` changed by plugin manager or Cloudron user. Changes can be freely made to these files and they will be retained across updates.
## Plugins
[Plugins](https://www.dokuwiki.org/plugins) can be installed using the `Extension Manager`.
Some [suggested](http://diyfuturism.com/index.php/2018/01/01/how-to-set-up-a-personal-wiki-with-configuration-for-common-use-cases-like-recipes-and-journaling/) plugins:
* Blockquote Easily add blockquoted text
* Blog displays your posts in a familiar blog format
* Todo add todos to wiki pages and assign to users if desired
* Dokubookmark archive web pages with a simple bookmarklet to your wiki
* DW2PDF Export wiki pages as PDFs
* EditTable Visually edit and add tables
* Gallery Embed image galleries in pages
* Move move pages and namespaces while preserving all links
* Note Insert notes that stand out from the rest of your text. Useful for documentation.
* NSPages Automatically generate a custom list of pages in your wiki or namespace
* TemplatePageName Changes the default template names so they can be edited from within the wiki.
* Struct Index, display, and query structured data in your wiki pages (requires SQLite)
* Tag add tagging functions
* VShare Embed videos
* Wrap probably the most useful formatting plugin easily add columns, notes, divs, etc.
* Yearbox Auto generate a table with links for a journal or diary, very customizable.
## Themes
[Themes (templates)](https://www.dokuwiki.org/template) can be installed using the `Extension Manager`.
Note that the theme has to be activated after installation. This can be done using the `Configuration Manager`'s
`template` drop down setting.

View File

@ -1,12 +0,0 @@
# <img src="/img/dolibarr-logo.png" width="25px"> Dolibarr App
## About
Dolibarr is an open source ERP & CRM for business.
* Questions? Ask in the [Cloudron Forum - Dolibarr](https://forum.cloudron.io/category/102/dolibarr)
* [Dolibarr Website](https://dolibarr.org/)
* [Dolibarr forum](https://www.dolibarr.org/forum.php)
* [Dolibarr issue tracker](https://github.com/Dolibarr/dolibarr/issues)

View File

@ -1,9 +0,0 @@
# <img src="/img/easyappointments-logo.png" width="25px"> Easy!Appointments App
## About
Easy!Appointments is a web appointment scheduler.
* Questions? Ask in the [Cloudron Forum - EasyAppointments](https://forum.cloudron.io/category/123/easy-appointments)
* [EasyAppointments Website](https://easyappointments.org)
* [EasyAppointments issue tracker](https://github.com/alextselegidis/easyappointments/issues)

View File

@ -1,39 +0,0 @@
# <img src="/img/element-logo.png" width="25px"> Element App
## Setup
Element is a front end that lets you connect to Matrix home servers. See the [Synapse](/apps/synapse)
package for installing a home server.
This app is pre-configured to use the matrix installation at `matrix.yourdomain.com`.
For example, if you installed Element at `element.example.com`, the application is pre-configured
to use `matrix.example.com`.
You can change the homeserver location, by using a [Web Terminal](/apps/#web-terminal)
and editing `/app/data/config.json`.
## Custom configuration
You can add custom Element configuration using the
[Web terminal](/apps#web-terminal):
* Add any custom configuration in `/app/data/config.json`.
* Restart the app
See [config.json](https://github.com/vector-im/riot-web/blob/develop/docs/config.md) for
reference.
## Custom files
Custom files can be located under `/app/data/custom`. They can then be used in some of
the configurations (like background) as follows:
```
"branding": {
"welcomeBackgroundUrl": "/custom/background.png",
"authHeaderLogoUrl": "/custom/header.png"
}
```

View File

@ -1,86 +0,0 @@
# <img src="/img/emby-logo.png" width="25px"> Emby App
## About
Bringing all of your home videos, music, and photos together into one place has never been easier. Your personal Emby Server automatically converts and streams your media on-the-fly to play on any device.
* Questions? Ask in the [Cloudron Forum - Emby](https://forum.cloudron.io/category/62/emby)
* [Emby Website](https://emby.media/)
* [Emby support](https://support.emby.media/support/home)
* [Emby forum](https://emby.media/community/)
## Mobile Apps
Emby Apps for various devices can be downloaded [here](https://emby.media/download.html).
For iOS and Android, you should be able to connect simply using the `https://emby.mydomain.com`.
in the custom server url field. No further ports or custom api urls need to be specified.
!!! note "Use port 443"
When connecting with the mobile apps use port 443 and not port 8920.
## Hardware Transcoding
!!! note "Cloudron 5.6 required"
Cloudron 5.6 is the first release that supports hardware transcoding.
Emby supports 3 types of [hardware acceleration](https://support.emby.media/support/solutions/articles/44001160207)
on Linux - Nvidia NVDEC, VA API and Intel QuickSync. Cloudron does not support Nvidia at the time of this
writing.
There are various steps to check if your hardware supports transcoding and if Emby is able to take
advantage of it.
* Check the output of `vainfo` on your server. You might have to run `apt-get install vainfo libva2 i965-va-driver`
if that command is not available on your server. The output should look like below. `VAEntrypointVLD` means that
your card is capable to decode this format, `VAEntrypointEncSlice` means that you can encode to this format.
```
$ vainfo
error: can't connect to X server!
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_1
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Intel i965 driver for Intel(R) CherryView - 2.1.0
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
```
* Next step is to check Emby logs. In `Manage Emby Server` -> `Advanced` -> `Logs`, look for a file named
`hardware_detection-<something>.txt`. If you cannot find this file, simply restart Emby and it will appear on
startup. The log file output will indicate that it detected the DRI device and can access it and what it can transcode.
* Now that Emby can access the DRI devices, play a video. For every video played, Emby will generate a log file of
the `ffmpeg-transcode-<something>.txt`. The log file outputs the Porcessing plan. Finally, when the video is playing,
open a new browser tab and see the `Active Devices` in the Emby dashboard. This will show that the video is indeed
transcoding.
<center>
<img src="/img/emby-active-devices.png" class="shadow">
</center>

View File

@ -1,63 +0,0 @@
# <img src="/img/espocrm-logo.png" width="25px"> EspoCRM App
## About
EspoCRM is a web application that allows users to see, enter and evaluate all your company relationships regardless of the type. People, companies, projects or opportunities — all in an easy and intuitive interface.
* Questions? Ask in the [Cloudron Forum - Espo CRM](https://forum.cloudron.io/category/17/espocrm)
* [Espo CRM Website](https://www.espocrm.com/)
* [Espo CRM forum](https://forum.espocrm.com/)
* [Espo CRM issue tracker](https://github.com/espocrm/espocrm/issues)
## Admin access
EspoCRM is automatically setup with an admin account.
```
username: admin
password: changeme
```
Be sure to change the admin credentials immediately after installation.
To make an existing Cloudron user an admin, set the admin flag under
`Teams and Access Control`. Currently, this requires that the Cloudron user
log into EspoCRM first.
## Portals
[EspoCRM Portal](https://www.espocrm.com/tips/customer-portals/) is a functionality that provides the access specific CRM data
and functions for your customers and partners. Portals can either be sub paths or standalone domains.
Cloudron supports standalone domains for EspoCRM portals using [App Location Aliases](/apps/#aliases). To setup a portal domain:
* Create the [EspoCRM portal](https://docs.espocrm.com/administration/portal/)
* Specify a custom URL and custom ID for the portal. For example, `https://acme.cloudron.club` in the screenshot below:
<center>
<img src="/img/espocrm-portal-config.png" class="shadow">
</center>
* Add the domain in the Cloudron dashboard.
<center>
<img src="/img/espocrm-portal-alias.png" class="shadow">
</center>
* Add [portal configuration rewrite rules](https://docs.espocrm.com/administration/portal/#access-to-portal) in `/app/data/apache/portals.conf`
using the [File Manager](/apps#file-manager):
```
RewriteCond %{HTTP_HOST} ^acme\.cloudron\.club$
RewriteRule ^client - [L]
RewriteCond %{HTTP_HOST} ^acme\.cloudron.club$
RewriteCond %{REQUEST_URI} !^/portal/acme/.*$
RewriteRule ^(.*)$ /portal/acme/$1 [L]
```
* Restart the app for the apache configuration changes to take effect.
* You can now visit `https://acme.cloudron.club`.

View File

@ -1,88 +0,0 @@
# <img src="/img/etherpad-logo.png" width="25px"> Etherpad App
## Installing plugins
To install plugins or change the configuration, visit the admin
interface at `/admin`. Only Cloudron admins will have access to
this page.
A complete list of available plugins is available [here](https://static.etherpad.org/plugins.html).
## Admin user
The first user to login in will be an admin. Additional admins can be added by adding their username to the
`ep_cloudron.admins` array in the `/app/data/settings.json`
```
"ep_cloudron": {
"admins": [
"username1",
"username2"
]
}
```
!!! warning ""
The app has to be restarted after editing `/app/data/settings.json` and all users have to re-login to change their role
## Custom settings
Use a [Web terminal](/apps#web-terminal) and add any custom
settings to `/app/data/settings.json`.
!!! warning ""
The app has to be restarted after editing `/app/data/settings.json`
### Make Documents Public
By default the app will always require login with a valid user.
To allow any visitor to create and edit documents, add the following to `/app/data/settings.json`:
```
"requireAuthentication": false,
```
## Customizing CSS
The CSS and Javascript can be customized by editing the files at `/app/data/custom/`.
See the [etherpad docs](http://etherpad.org/doc/v1.2.7/#index_custom_static_files) for
more information.
### Dark mode
The app ships with the **colibris** theme/skin. This skin supports a dark mode through the [skinVariants](https://github.com/ether/etherpad-lite/blob/develop/settings.json.template#L93). To enable that, edit `/app/data/settings.json`:
```
"skinVariants": "super-dark-toolbar super-dark-editor dark-background",
```
## API Access
The [Etherpad API](http://etherpad.org/doc/v1.3.0/#index_http_api) can be accessed by
obtaining the APIKEY. For this, open a [Web terminal](/apps#web-terminal)
and view the contents of the file `/app/data/APIKEY.txt`.
Example usage:
curl https://etherpad.domain/api/1.2.7/listAllPads?apikey=c5513793f24a6fbba161e4497b26c734ff5b2701fad0f1211097ccb405ea65c7
## Troubleshooting
If the app does not start, especially after an update, usually this is related to incompatible plugins.
To fix this situation, put the app in recovery mode and open a [Web terminal](/apps#web-terminal).
Get a list of installed plugins:
```
npm ls 2> /dev/null | grep ep_
```
The two plugins `ep_cloudron` and `ep_etherpad-lite` are required, any other plugin might cause the issue.
Uninstall other plugins one by one with:
```
npm rm <pluginname>
```
Then see if the app can start up again by running `/app/pkg/start.sh`. If the app starts up and is accessible normally,
disable recovery mode again, otherwise try the next one.
Plugins which did not cause the problem can be reinstalled again with:
```
npm i <pluginname>
```

View File

@ -1,10 +0,0 @@
# <img src="/img/filepizza-logo.png" width="25px"> File Pizza App
## About
File Pizza imlements peer-to-peer file transfers in your browser.
* Questions? Ask in the [Cloudron Forum - File Pizza](https://forum.cloudron.io/category/66/filepizza)
* [File Pizza Website](http://file.pizza)
* [Upstream File Pizza issue tracker](https://github.com/kern/filepizza/issues)

View File

@ -1,24 +0,0 @@
# <img src="/img/firefly-iii-logo.png" width="25px"> Firefly III App
## About
Firefly III is a free and open source personal finance manager.
* Questions? Ask in the [Cloudron Forum - Firefly III](https://forum.cloudron.io/category/48/firefly-iii)
* [Firefly III Website](https://firefly-iii.org/)
* [Firefly III issue tracker](https://github.com/firefly-iii/firefly-iii/issues)
## Admin
Cloudron user can login to Firefly III using their username and password. This app has no
separate 'admin' account. The first user to login is made an admin (site owner). Site owners
can edit and remove other users.
The Firefly III UI does not have a way to grant site owner permissions to another user.
## Sharing accounts
Currently, sharing account between users is not implemented. See the upstream bugtracker for
more information - [#372](https://github.com/firefly-iii/firefly-iii/issues/372)
and [#2531](https://github.com/firefly-iii/firefly-iii/issues/2531).

View File

@ -1,48 +0,0 @@
# <img src="/img/freescout-logo.png" width="25px"> FreeScout App
## About
FreeScout is the super lightweight free open source help desk and shared inbox.
* Questions? Ask in the [Cloudron Forum - FreeScout](https://forum.cloudron.io/category/68/freescout)
* [FreeScout Website](https://freescout.net)
* [FreeScout issue tracker](https://github.com/freescout-helpdesk/freescout/issues)
## Mailbox Setup
Mailboxes do not need to be hosted on Cloudron itself. The app acts as a regular email client and thus can be setup for any IMAP mailbox.
For sending emails of a specific mailbox, the STMP method has to be selected as `php mail()` or `sendmail` wont work on Cloudron.
<center>
<img src="/img/freescout-smtp-settings.png" class="shadow">
</center>
### Cloudron mailbox
To configure Freescout with a Cloudron mailbox, use the following connection settings.
For Sending Emails:
!!! note "Set encryption to None if FreeScout and Cloudron Mail are on same server"
For technical reasons, the mail server does not offer encryption for apps hosted on the same server.
For this reason, set the Encryption in the screenhot below to None instead of TLS. This is safe since
all communication is internal to the server.
<center>
<img src="/img/freescout-sending-emails.png" class="shadow">
</center>
For Fetching Emails, use the configuration below. Unlike sending emails, the encryption setting is always `SSL`.
<center>
<img src="/img/freescout-fetching-emails.png" class="shadow">
</center>
## Modules
FreeScout supports a wide variety of modules to extend the app. Most of them can simply be installed through the FreeScout user interface,
however some require additional steps to migrate the database before being used.
To ensure all necessary steps are run after a module installation, simply restart the app through the Cloudron dashboard after activating the module.

View File

@ -1,30 +0,0 @@
# <img src="/img/freshrss-logo.png" width="25px"> FreshRSS
## About
FreshRSS is a free, self-hostable aggregator.
* Questions? Ask in the [Cloudron Forum - FreshRSS](https://forum.cloudron.io/category/27/freshrss)
* [FreshRSS Website](http://www.freshrss.org)
* [FreshRSS issue tracker](https://github.com/FreshRSS/FreshRSS/issues)
## Installing Extensions
To install extensions, simply extract them to `/app/data/extensions` and restart
the app.
The [File manager](/apps#file-manager) can be used to upload and extract extensions.
## Apps
To enable [mobile access](https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html),
* In `Administration` -> `Authentication`, enable the option “Allow API access (required for mobile apps)”.
* Under the section `Profile`, fill-in the field `API password (e.g., for mobile apps)`.
* Note that every user must define an API password.
### FeedMe
The [FeedMe Android app](https://play.google.com/store/apps/details?id=com.seazon.feedme) has support
for FreshRSS. When using this app, remember to use the hostname as `https://freshrss.example.com/api/greader.php`

View File

@ -1,32 +0,0 @@
# <img src="/img/geoip-logo.png" width="25px"> GeoIP App
## About
A simple Geolocation service based on [maxmind](https://www.npmjs.com/package/maxmind).
* Questions? Ask in the [Cloudron Forum - GeoIP Service](https://forum.cloudron.io/category/79/geoip-service)
* [GeoIP Website](https://git.cloudron.io/cloudron/geoip/)
## Usage
When making any request to either `/json` or `/jsonp?callback=functionName`, the service will
resolve the IP to a location and return as much information as possible about the country and city.
Additionally both routes can take a query param `ip` which will override the source ip.
Example:
```
$ curl https://geoip.example.com/json
{"city":{"geoname_id":5344157,"names":{"en":"Dublin","ru":"Дублин","zh-CN":"都伯林"}},"continent":{"code":"NA","geoname_id":6255149,"names":{"de":"Nordamerika","en":"North America","es":"Norteamérica","fr":"Amérique du Nord","ja":"北アメリカ","pt-BR":"América do Norte","ru":"Северная Америка","zh-CN":"北美洲"}},"country":{"geoname_id":6252001,"iso_code":"US","names":{"de":"USA","en":"United States","es":"Estados Unidos","fr":"États-Unis","ja":"アメリカ合衆国","pt-BR":"Estados Unidos","ru":"США","zh-CN":"美国"}},"location":{"accuracy_radius":50,"latitude":37.7201,"longitude":-121.919,"metro_code":807,"time_zone":"America/Los_Angeles"},"postal":{"code":"94568"},"registered_country":{"geoname_id":6252001,"iso_code":"US","names":{"de":"USA","en":"United States","es":"Estados Unidos","fr":"États-Unis","ja":"アメリカ合衆国","pt-BR":"Estados Unidos","ru":"США","zh-CN":"美国"}},"subdivisions":[{"geoname_id":5332921,"iso_code":"CA","names":{"de":"Kalifornien","en":"California","es":"California","fr":"Californie","ja":"カリフォルニア州","pt-BR":"Califórnia","ru":"Калифорния","zh-CN":"加利福尼亚州"}}]}
```
## Access Token
An access token can be set in `/app/data/apitoken.txt`. If set, you have to pass the `accessToken` query parameter.
```
$ curl https://geoip.example.com/json?accessToken=thetoken
{"city":{"geoname_id":5344157,"names":{"en":"Dublin","ru":"Дублин","zh-CN":"都伯林"}},"continent":{"code":"NA","geoname_id":6255149,"names":{"de":"Nordamerika","en":"North America","es":"Norteamérica","fr":"Amérique du Nord","ja":"北アメリカ","pt-BR":"América do Norte","ru":"Северная Америка","zh-CN":"北美洲"}},"country":{"geoname_id":6252001,"iso_code":"US","names":{"de":"USA","en":"United States","es":"Estados Unidos","fr":"États-Unis","ja":"アメリカ合衆国","pt-BR":"Estados Unidos","ru":"США","zh-CN":"美国"}},"location":{"accuracy_radius":50,"latitude":37.7201,"longitude":-121.919,"metro_code":807,"time_zone":"America/Los_Angeles"},"postal":{"code":"94568"},"registered_country":{"geoname_id":6252001,"iso_code":"US","names":{"de":"USA","en":"United States","es":"Estados Unidos","fr":"États-Unis","ja":"アメリカ合衆国","pt-BR":"Estados Unidos","ru":"США","zh-CN":"美国"}},"subdivisions":[{"geoname_id":5332921,"iso_code":"CA","names":{"de":"Kalifornien","en":"California","es":"California","fr":"Californie","ja":"カリフォルニア州","pt-BR":"Califórnia","ru":"Калифорния","zh-CN":"加利福尼亚州"}}]}
```

View File

@ -1,40 +0,0 @@
# <img src="/img/ghost-logo.png" width="25px"> Ghost App
## About
Ghost makes it simple to publish content online, grow an audience with email newsletters, and make money from premium memberships.
* Questions? Ask in the [Cloudron Forum - Ghost](https://forum.cloudron.io/category/59/ghost)
* [Ghost Website](https://ghost.org/)
* [Ghost forum](https://forum.ghost.org/)
* [Ghost issue tracker](https://github.com/TryGhost/Ghost/issues)
## Structured data
Ghost outputs basic meta tags to allow rich snippets of your content to be recognised by popular social networks.
Currently there are 3 supported rich data protocols which are output in `{{ghost_head}}`:
- Schema.org - http://schema.org/docs/documents.html
- Open Graph - http://ogp.me/
- Twitter cards - https://dev.twitter.com/cards/overview
The Cloudron app enables output of [structured data](https://github.com/TryGhost/Ghost/blob/master/PRIVACY.md#structured-data)
by default.
## Gravatar
For [privacy](https://github.com/TryGhost/Ghost/blob/master/PRIVACY.md) reasons, Gravatar functionality is disabled
by default. You can re-enable this by editing the `useGravatar` field in `/app/data/config.production.json` using
the [File Manager](/apps#file-manager). Be sure to restart the app after editing the config file.
## Importing
You can import content from another Ghost installation from Settings -> Labs -> Import content.
If the JSON file is large, the import might fail. To fix this:
* Give the app [more memory](/apps/#memory-limit) (say 2GB).
* Next, use the [File Manager](/apps#file-manager) to edit `/app/data/env` to adjust the NodeJS `max-old-space-size` limit.
Set it to 2GB using a line like this `export NODE_OPTIONS="--max-old-space-size=2048"`
* Restart Ghost and try the import again.

View File

@ -1,25 +0,0 @@
# <img src="/img/gitea-logo.png" width="25px"> Gitea App
## About
Gitea is a community managed lightweight code hosting solution written in Go.
* Questions? Ask in the [Cloudron Forum - Gitea](https://forum.cloudron.io/category/19/gitea)
* [Gitea Website](https://gitea.io)
* [Gitea forum](https://discourse.gitea.io/)
* [Gitea issue tracker](https://github.com/go-gitea/gitea/issues)
## Customizing Gitea
[Customizing Gitea](https://docs.gitea.io/en-us/customizing-gitea/) is typically done
using the custom folder. This is the central place to override configuration settings,
templates, etc.
On Cloudron, the custom data folder is located at `/app/data/custom`.
Gitea also supports various [configuration customizations](https://docs.gitea.io/en-us/config-cheat-sheet/).
To add customizations, use the [File Manager](/apps#file-manager) and edit
the file named `/app/data/app.ini`.
After editing, restart the app for the changes to take effect.

View File

@ -1,63 +0,0 @@
# <img src="/img/githubpages-logo.png" width="25px"> GitHub Pages App
## About
GitHub pages compatible repos can be published using this app.
* Questions? Ask in the [Cloudron Forum - GitHub Pages](https://forum.cloudron.io/category/39/github-pages)
## Publishing pages
To publish your page, push your GitHub Pages repository via HTTP to this
app:
```
git remote add page https://<app.example.com>/_git/page
git push page master
```
When pushing, `git` will prompt for Cloudron username and credentials. Any
Cloudron user with access to the app can push.
It can be convenient to store the HTTP username and password in the `~/.netrc`
file:
```
machine app.example.com login fred password bluebonnet
```
Adjust `app.example.com`, `fred` and `bluebonnet` above to your setup.
## Jekyll plugins
The GitHub pages app does not support custom Jekyll plugins. The app follows
the list of plugins supported by GitHub pages. See
[GitHub pages plugins](https://pages.github.com/versions/) page for a list of
supported plugins.
## GitHub pages GEM
The app uses the [pages gem](https://github.com/github/pages-gem) to statically
build the website. In the event that the gem update does not build the repo (because
of version mismatch), the app will continue to serve the last successful build.
## Using mkdocs
[mkdocs](https://www.mkdocs.org/) has a command called `gh-deploy` that can
automatically build docs and publish the site to a specific remote and branch.
```
git remote add page https://site.cloudron.xyz/_git/page # add the github-pages app remote
mkdocs gh-deploy --remote-name page --remote-branch master --force
```
## About
This app is blah blah
* Questions? Ask in the [Cloudron Forum - GitHub Pages](https://forum.cloudron.io/category/39/github-pages)
* [GitHub Pages Website](https://pages.github.com/)
* [Upstream GitHub Pages forum](https://forum.cloudron.io/category/39/github-pages)
* [Upstream GitHub Pages issue tracker](https://forum.cloudron.io/category/39/github-pages)

View File

@ -1,121 +0,0 @@
# <img src="/img/gitlab-logo.png" width="25px"> GitLab App
## About
GitLab is the complete DevOps platform.
* Questions? Ask in the [Cloudron Forum - GitLab](https://forum.cloudron.io/category/25/gitlab)
* [GitLab Website](https://about.gitlab.com/)
* [GitLab forum](https://forum.gitlab.com/)
* [GitLab issue tracker](https://gitlab.com/gitlab-org/gitlab/-/issues)
## Custom gitlab.yml
GitLab is customized using GitLab's admin interface. Some options can ony be
changed in `gitlab.yml`. For such situations, use the [File Manager](/apps#file-manager)
and create a file named `/app/data/gitlab.yml`. This way custom configurations
will be preserved across updates and will also be backed up.
For example, to add GitHub login and Piwik analytics, add a `/app/data/gitlab.yml` like below
and _restart_ the application:
```
production:
<<: *base
extra:
## Piwik analytics.
piwik_url: 'analytics.example.com'
piwik_site_id: '7'
omniauth:
# Allow login via Twitter, Google, etc. using OmniAuth providers
enabled: true
allow_single_sign_on: ["github"]
block_auto_created_users: false
external_providers: [ ]
providers:
- { name: 'github',
app_id: 'my_app_id',
app_secret: 'my_app_secret',
url: "https://github.com/",
verify_ssl: true,
args: { scope: 'user:email' } }
```
## Disabling registration
By default, GitLab allows external people to sign up. This can be disabled to
restrict use only to Cloudron users as follows:
GitLab > Admin area > Settings > Features > remove the check mark "Sign-up enabled"
## GitLab Runner for CI
[GitLab CI](https://docs.gitlab.com/ce/ci/README.html) involves installing one or more GitLab Runners.
These runners carry out tasks as instructed by the main GitLab installation. When installing a runner,
you have to select the [project tags](https://docs.gitlab.com/ce/ci/runners/#using-tags) to
which the runner will respond and the type of tasks ("[executor](https://docs.gitlab.com/runner/executors/README.html)")
it can carry out. For example, there is a Shell executor, Docker execuctor etc.
Once GitLab runner is installed, you have to add the runner in GitLab. When adding the
runner in GitLab, you can decide how GitLab [schedules tasks](https://docs.gitlab.com/ce/ci/runners/)
in the runner ie. if the runner is exclusive to a project ('Specific Runner') or shared between
projects ('Shared Runner) or specific to a group ('Group Runner').
Cloudron's GitLab package can be used with GitLab Runner as follows.
* First create a **new** server and install GitLab Runner on it following the instructions
at [GitLab docs](https://docs.gitlab.com/runner/install/linux-repository.html). In short:
```
# For ubuntu
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt-get install gitlab-runner
```
* Get the token listed in GitLab under `https://<gitlab.example.com>/admin/runners` (under shared runners section).
* [Register the runner](https://docs.gitlab.com/runner/register/index.html) with the token from the above step
```
root@localhost:~# sudo gitlab-runner register
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://gitlab.cloudron.xyz
Please enter the gitlab-ci token for this runner:
xzdZgdsXq5uSFCyAK7pP
Please enter the gitlab-ci description for this runner:
[localhost]: Shell Jobs Runner
Please enter the gitlab-ci tags for this runner (comma separated):
Whether to lock the Runner to current project [true/false]:
[true]: false
Registering runner... succeeded runner=xzdZgdsX
Please enter the executor: docker, docker-ssh, shell, ssh, virtualbox, docker-ssh+machine, parallels, docker+machine, kubernetes:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
```
* The Runner should now be listed under `https://<gitlab.example.com>/admin/runners`.
* Now push a [.gitlab-ci.yml](https://docs.gitlab.com/ce/ci/yaml/README.html) to your project to
start using the runner.
## Reset Admin Password
To reset the admin password, run the following commands using the [Web terminal](/apps#web-terminal):
```
# su - git
$ cd gitlab
$ bundle exec rails c -e production # (takes about 10 sec to bring up rails terminal)
=> user = User.where(id: 1).first
=> user.password = 'NEW_PASS'
=> user.password_confirmation = 'NEW_PASS'
=> user.save
=> exit
```

View File

@ -1,18 +0,0 @@
# <img src="/img/gogs-logo.png" width="25px"> Gogs App
## About
Gogs is a painless self-hosted Git service.
* Questions? Ask in the [Cloudron Forum - Gogs](https://forum.cloudron.io/category/70/gogs)
* [Gogs Website](https://gogs.io)
* [Gogs issue tracker](https://github.com/gogs/gogs/issues)
## Customizing Gogs
Gogs supports various [customizations](https://gogs.io/docs/advanced/configuration_cheat_sheet).
To add customizations, use the [File Manager](/apps#file-manager)) and
edit the file named `/app/data/app.ini`.
After editing, restart the app for the changes to take effect.

View File

@ -1,32 +0,0 @@
# <img src="/img/grafana-logo.png" width="25px"> Grafana App
## About
Grafana is the open and composable observability and data visualization platform.
* Questions? Ask in the [Cloudron Forum - Grafana](https://forum.cloudron.io/category/98/grafana)
* [Grafana Website](https://grafana.com)
* [Grafana forum](https://community.grafana.com/)
* [Grafana issue tracker](https://github.com/grafana/grafana/issues)
## Customizations
Custom configuration can be added in the file `/app/data/custom.ini`. See the [Grafana docs](https://grafana.com/docs/grafana/latest/administration/configuration/)
on the various configuration options.
## Installing plugins
To install plugins, you run the grafana CLI tool using the [Web Terminal](/apps#web-terminal).
For example,
```
# /app/code/bin/grafana-cli -homepath /app/code -config /run/grafana/custom.ini plugins install grafana-worldmap-panel
```
## Reset admin password
```
# /app/code/bin/grafana-cli --homepath /app/code --config /run/grafana/custom.ini admin reset-admin-password secret123
```

View File

@ -1,21 +0,0 @@
# <img src="/img/grav-logo.png" width="25px"> Grav App
## About
Grav is a modern open source flat-file CMS.
* Questions? Ask in the [Cloudron Forum - Grav](https://forum.cloudron.io/category/72/grav-cms)
* [Grav Website](https://getgrav.org)
* [Grav forum](https://discourse.getgrav.org/)
* [Grav issue tracker](https://github.com/getgrav/grav/issues)
## CLI
GPM and Grav commands can be executed by opening a [Web terminal](/apps#web-terminal):
```
# cd /app/code
# sudo -u www-data -- /app/code/bin/gpm install bootstrap4-open-matter
# sudo -u www-data -- /app/code/bin/grav
```

View File

@ -1,60 +0,0 @@
# <img src="/img/greenlight-logo.png" width="25px"> Greenlight App
## About
Greenlight is a really simple end-user interface for your BigBlueButton server.
* Questions? Ask in the [Cloudron Forum - Greenlight](https://forum.cloudron.io/category/103/greenlight)
* [Greenlight Website](https://github.com/bigbluebutton/greenlight)
* [Greenlight issue tracker](https://github.com/bigbluebutton/greenlight/issues)
## Installing BigBlueButton
This app is intended to work alongside a BigBlueButton installation. Greenlight is the frontend which
has Cloudron user authentication and the BigBlueButton install is the backend. BBB must be
installed on a separate VM following the instructions at https://github.com/bigbluebutton/bbb-install.
To summarize the installation procedure:
* Click yourself a dedicated bare metal. Let's say https://www.hetzner.com/de/dedicated-rootserver/ax41-nvme
* Install ubuntu 16 on it.
* SSH into it
* `wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -w -v xenial-22 -s bbb.example.com -e info@example.com -c <hostname>:<secret>`.
* Install Greenlight on Cloudron
* Take the output of `bbb-conf --secret` and put it into `/app/data/.env` of Greenlight using the [File manager](/apps/#file-manager).
* Restart the Greenlight app.
## Creating a new user with a role
To create a new User, open a [Web terminal](/apps/#web-terminal) and run the following commands:
```bash
# Information
# bundle exec rake user:create["name","email","password","role"]
# Creating an admin
bundle exec rake user:create["admin","admin@server.local","changeme","admin"]
# Creating a user - Can be usefull if there is no cloudron user
bundle exec rake user:create["user-noldap","user-noldap@server.local","changeme","user"]
```
For further documentation about user creation you can visit the official documentation. [Greenlight - Creating Accounts](https://docs.bigbluebutton.org/greenlight/gl-admin.html#creating-accounts)
## Customizing looks and content of Greenlight
Please visit the official [Greenlight Documentaion](https://docs.bigbluebutton.org/greenlight/gl-admin.html#site-settings) for information about the customization.
## Customizing the Landing Page
The [Official Documentation](https://docs.bigbluebutton.org/greenlight/gl-customize.html#customizing-the-landing-page).
You can follow the [Official Documentation](https://docs.bigbluebutton.org/greenlight/gl-customize.html#customizing-the-landing-page) with the Cloudron [File manager](/apps/#file-manager).
Just note the path changes:
```
app/views/main/index.html.erb => /app/data/views/index.html.erv
config/locales/en.yml => /app/data/locales/en.yml
```

View File

@ -1,30 +0,0 @@
# <img src="/img/guacamole-logo.png" width="25px"> Guacamole App
## About
Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
* Questions? Ask in the [Cloudron Forum - Guacamole](https://forum.cloudron.io/category/99/guacamole)
* [Guacamole Website](https://guacamole.apache.org//)
* [Guacamole support](https://guacamole.apache.org/support/)
* [Guacamole issue tracker](https://issues.apache.org/jira/projects/GUACAMOLE/issues/GUACAMOLE-1239)
## RDP
Most Windows/RDP servers do not have a valid certificate installed. For this reason,
be sure to check the ignore server certificate checkbox in the Parameters section.
<center>
<img src="/img/guacamole-rdp.png" class="shadow">
</center>
## Guacamole menu
The Guacamole menu is a sidebar which is hidden until explicitly shown. On a desktop or other
device which has a hardware keyboard, you can show this menu by pressing **Ctrl+Alt+Shift**.
If you are using a mobile or touchscreen device that lacks a keyboard, you can also show the
menu by swiping right from the left edge of the screen.
See [the docs](https://guacamole.apache.org/doc/gug/using-guacamole.html#guacamole-menu) for
more information.

View File

@ -1,16 +0,0 @@
# <img src="/img/hastebin-logo.png" width="25px"> Hastebin App
## About
Hastebin is an open source pastebin written in node.js.
* Questions? Ask in the [Cloudron Forum - Hastebin](https://forum.cloudron.io/category/78/hastebin)
* [Hastebin Website](https://hastebin.com/about.md)
* [Hastebin issue tracker](https://github.com/seejohnrun/haste-server/issues)
## Deleting pastes
Pastes never expire and have to be cleaned up manually. For this,
use the [File Manager](/apps#file-manager) and simply
remove the pastes stored under `/app/data` as needed.

View File

@ -1,39 +0,0 @@
# <img src="/img/hedgedoc-logo.png" width="25px"> HedgeDoc App
## About
HedgeDoc is the best platform to write and share markdown.
* Questions? Ask in the [Cloudron Forum - HedgeDoc](https://forum.cloudron.io/category/38/hedgedoc)
* [HedgeDoc Website](https://demo.hedgedoc.org/)
* [HedgeDoc issue tracker](https://github.com/hedgedoc/hedgedoc/issues)
!!! note "Impending rename"
CodiMD is being renamed to HedgeDoc. This app package will be renamed accordingly.
## Custom configuration
Use the [File manager](/apps#file-manager)
to place custom configuration under `/app/data/config.json`.
See [HedgeDoc docs](https://github.com/hedgedoc/hedgedoc/blob/master/docs/configuration.md)
for configuration options reference.
## Image uploads
By default, images are uploaded to the data directory of the app itself.
To switch to another provider like MinIO, first [configure minio](https://github.com/hedgedoc/hedgedoc/blob/master/docs/guides/minio-image-upload.md) to image uploads. Then, use the following configuration in
`/app/data/config.json`:
```
"imageUploadType": "minio",
"s3bucket": "codimd-images",
"minio": {
"accessKey": "MINIO_ACCESS_KEY",
"secretKey": "MINIO_SECRET_KEY",
"endPoint": "minio.cloudrondomain.com",
"secure": true,
"port": 443
}
```

View File

@ -1,46 +0,0 @@
# <img src="/img/invoiceninja-logo.png" width="25px"> Invoice Ninja App
## About
InvoiceNinja is the leading self-host platform to create invoices, accept payments, track expenses & time tasks. Support WePay, Stripe, Braintree, PayPal, Zapier, and more!
* Questions? Ask in the [Cloudron Forum - Invoice Ninja](https://forum.cloudron.io/category/11/invoice-ninja)
* [Invoice Ninja Website](https://www.invoiceninja.org)
* [Invoice Ninja forum](https://forum.invoiceninja.com/)
## Customizations
InvoiceNinja customizations can be made by opening a [File Manager](/apps#file-manager)
and editing `/app/data/env`.
## Invoices
The app is pre-configured to send any invoices every 6 hours. To run the invoice
sending task manually, open a [Web terminal](/apps#web-terminal) and run:
```
sudo -u www-data /usr/local/bin/php /app/code/artisan ninja:send-invoices
```
## Reminders
The app is pre-configured to send out reminders at 0800 UTC. This limitation
is because running the send-reminders cron more than once a day would
[cause problems](https://github.com/invoiceninja/invoiceninja/issues/1921#issuecomment-368806883)
(duplicate late fees, etc.).
To run the reminders task manually, open a [Web terminal](/apps#web-terminal) and run:
```
sudo -u www-data /usr/local/bin/php /app/code/artisan ninja:send-reminders
```
## Cron logs
Cron logs are stored in `/app/data/storage/logs/cron.log`.
## API Key
To get the API key, open `/app/data/.env` with the [File manager](/apps#file-manager), and lookg
for `API_SECRET`.

View File

@ -1,10 +0,0 @@
# <img src="/img/jellyfin-logo.png" width="25px"> Jellyfin App
## About
Jellyfin is the volunteer-built media solution that puts you in control of your media. Stream to any device from your own server, with no strings attached. Your media, your server, your way.
* Questions? Ask in the [Cloudron Forum - Jellyfin](https://forum.cloudron.io/category/85/jellyfin)
* [Jellyfin Website](https://jellyfin.org/)
* [Jellyfin issue tracker](https://github.com/jellyfin/jellyfin/issues/)

View File

@ -1,24 +0,0 @@
# <img src="/img/jingo-logo.png" width="25px"> Jingo App
## About
The aim of Jingo Wiki is to provide an easy way to create a centralized documentation area for people used to work with git and markdown.
* Questions? Ask in the [Cloudron Forum - Jingo](https://forum.cloudron.io/category/83/jingo)
* [Jingo Website](https://github.com/claudioc/jingo)
* [Jingo issue tracker](https://github.com/claudioc/jingo/issues)
## Custom configuration
Use the [File manager](/apps#file-manager)
to place custom configuration under `/app/data/config.yml`.
See [Jingo docs](https://github.com/claudioc/jingo#configuration-options-reference)
for configuration options reference.
## Look and feel
You can add a sidebar, footer, custom CSS and custom Javascript by following the
instructions in [Jingo docs](https://github.com/claudioc/jingo#customization).

View File

@ -1,66 +0,0 @@
# <img src="/img/jirafeau-logo.png" width="25px"> Jirafeau App
## About
Jirafeau is a "one-click-filesharing": Select your file, upload, share a link. That's it.
* Questions? Ask in the [Cloudron Forum - Jirafeau](https://forum.cloudron.io/category/121/jirafeau)
* [Jirafeau Website](https://jirafeau.net/)
* [Jirafeau issue tracker](https://gitlab.com/mojo42/Jirafeau/-/issues)
## Customization
The app allows for a multitude of customization by overwriting config values in `/app/data/custom.php` using the [File Manager](/apps/#file-manager).
All options can be seen [here](https://gitlab.com/mojo42/Jirafeau/-/blob/master/lib/config.original.php).
For example settings the page title can be done by adding the following:
```
$cfg['organisation'] = 'My filedrop';
```
## Restricting Uploads
By default, anyone can upload to the instance. You can add customizations in `/app/data/custom.php` to protect
your instance.
To protect uploads with a password:
```
$cfg['upload_password'] = array('psw1'); // One password
```
Alternately, uploads can be restricted by IP address(es):
```
$cfg['upload_ip'] = array('123.45.0.0/16');
```
If you set a password, you can set a list of IPs that can upload without password:
```
$cfg['upload_ip_nopassword'] = array();
```
## Themes
To change the theme, edit `/app/data/custom.php`. List of theme names is [available here](https://gitlab.com/mojo42/Jirafeau/-/tree/master/media).
```
$cfg['style'] = 'dark-courgette';
```
If you want to make a custom theme, then use the [Web Terminal](/apps/#web-terminal) to first copy over
from an existing theme (themes are located under `/app/code/media.original`):
```
# cd /app/data/media
# cp -r /app/code/media.original/dark-courgette/ mydarkhorse
```
Edit the new theme `mydarkhorse` to your content. Then, change `/app/data/custom.php`:
```
$cfg['style'] = 'mydarkhorse';
```

View File

@ -1,81 +0,0 @@
# <img src="/img/jupyterhub-logo.png" width="25px"> JupyterHub App
## About
JupyterHub brings the power of notebooks to groups of users. It gives users access to computational environments and resources without burdening the users with installation and maintenance tasks.
* Questions? Ask in the [Cloudron Forum - Jupyter Hub](https://forum.cloudron.io/category/75/jupyterhub)
* [Jupyter Hub Website](https://jupyter.org/hub)
* [Jupyter Hub Community](https://jupyter.org/community)
* [Jupyter Hub issue tracker](https://github.com/jupyterhub/jupyterhub/issues)
## How it works
The JupyterHub app is run as a container (like any other Cloudron app). The hub app manages user login and creates
a separate container for each user's notebooks. The notebook container is created from the `c.DockerSpawner.container_image`
setting (see below on how to customize this). Each notebook container is run with a configurable memory limit based
on `c.Spawner.mem_limit`. The advantage of this approach is that you can control how much compute/memory is allocated to
each user and a notebook cannot bring down the whole server.
If you change the notebook image or any configuration, the notebook containers have to be "recreated". To help with this,
the `/app/code/remove_notebook_containers.py` script can be run. Note that this only removes the containers but not the
user's notebooks itself.
## Selecting a notebook image
By default, the app uses the `jupyter/datascience-notebook`. The upstream Jupyterhub project
maintains many other [notebook images](https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html).
To use a different notebook image, use the [File Manager](/apps#file-manager)
to place custom configuration under `/app/data/customconfig.py`. For example,
add a line like below:
```
c.DockerSpawner.container_image = 'jupyter/all-spark-notebook:77e10160c7ef'
```
It is also possible to use any arbitrary docker image built from the `jupyter/base-notebook`.
For this, build an image from Dockerfile with `FROM jupyter/base-notebook`, push it to Dockerhub
and update the image field above.
To apply the configuration, restart the app using the Restart button.
!!! note "Remove existing notebook containers"
For the container image to take effect, you have to remove any existing docker notebook containers
using the `/app/code/remove_notebook_containers.py` script. Notebook data will be intact despite
deleting the container.
## Notebook Memory limit
By default, notebooks are given 500M (including swap). This can be changed by editing `/app/data/customconfig.py`.
```
c.Spawner.mem_limit = '1G'
```
To apply the configuration, restart the app using the Restart button.
!!! note "Remove existing notebook containers"
For the memory limit to take effect, you have to remove any existing docker notebook containers
using the `/app/code/remove_notebook_containers.py` script. Notebook data will be intact despite
deleting the container.
## Notebook persistence
All notebooks are part of the application backup and persisted across updates.
Libraries installed using `conda` are not part of the backup and are part of the notebook container.
Idle notebooks are shutdown over time but they are not destroyed. This means that if any libraries
installed in notebook container will generally persist.
If the notebook image is changed, the old notebook containers are destroyed. This means that
any libraries that were previously installed have to be re-installed.
## Other custom configuration
Use the [File Manager](/apps#file-manager)
to place custom configuration under `/app/data/customconfig.py`.
See the [docs](https://github.com/jupyterhub/jupyterhub-deploy-docker#run-jupyterhub) for
more information.

View File

@ -1,23 +0,0 @@
# <img src="/img/kanboard-logo.png" width="25px"> Kanboard App
## About
Kanboard is a free and open source Kanban project management software.
* Questions? Ask in the [Cloudron Forum - Kanboard](https://forum.cloudron.io/category/36/kanboard)
* [Kanboard Website](http://kanboard.net/)
* [Kanboard issue tracker](https://github.com/kanboard/kanboard/issues)
## Installing plugins
[Kanboard Plugins](https://kanboard.org/#plugins) are used to extend Kanboard. Kanboard has a UI to install and uninstall plugins
at `/app/data/plugins` directly.
Plugins can also be installed manually at `/app/data/plugins`. Use the [file manager](/apps/#file-manager) to upload
and extract plugins under that directory.
## Custom configuration
Custom plugin configuration can be stored in `/app/data/customconfig.php`. To edit
the file, use the [file manager](/apps#file-manager) for the app.

View File

@ -1,33 +0,0 @@
# <img src="/img/kimai-logo.png" width="25px"> Kimai App
## About
Kimai is a free & open source timetracker.
* Questions? Ask in the [Cloudron Forum - Kimai](https://forum.cloudron.io/category/45/kimai)
* [Kimai Website](https://www.kimai.org/)
* [Kimai issue tracker](https://github.com/kevinpapst/kimai2/issues)
## Plugins
Kimai2 supports both free and paid plugins or sometimes called bundles.
The [marketplace](https://www.kimai.org/store/) offers a selection of mostly paid plugins, while there are many free ones on github. Plugins can be obtained either through git checkout or downloading and extracting a zip bundle into `/app/data/plugins`.
The following example installes the demo plugin using the [Web terminal](/apps#web-terminal) into the running app instance:
```
cd /app/data/plugins
git clone https://github.com/Keleo/DemoBundle.git
chown -R www-data.www-data .
cd /app/code
sudo -u www-data bin/console kimai:reload
```
## Customization
Use the [File Manager](/apps#file-manager) to edit custom configuration under `/app/data/local.yaml`.
See [Kimai customization docs](https://www.kimai.org/configurations.html) for more information.
Once the `local.yaml` is updated, restart the app from the Cloudron dashboard.

View File

@ -1,7 +0,0 @@
# <img src="/img/kopano-meet-logo.png" width="25px"> Kopano Meet App
## TURN Server
The Kopano Meet app is pre-configured to use Cloudron's built-in TURN server. No
additional configuration is required.

View File

@ -1,40 +0,0 @@
# <img src="/img/kutt-logo.png" width="25px"> Kutt App
## About
Kutt is a free Modern URL Shortener.
* Questions? Ask in the [Cloudron Forum - Kutt](https://forum.cloudron.io/category/111/kutt)
* [Kutt Website](https://kutt.it)
## Custom config
Custom configuration can be put in `/app/data/env` using the [Web Terminal](/apps#web-terminal) or the
[File Manager](/apps/#file-manager).
## Registration
Registration is enabled by default. This can be disabled by settings `DISALLOW_REGISTRATION=true`
in `/app/data/env'
## 3rd party packages
Kutt integrates with a variety of languages and frameworks. See [upstream docs](https://github.com/thedevs-network/kutt#3rd-party-packages)
for more information
## Custom domains
Kutt supports having more than one domain. You can add domains in the custom domain section. Note
`Set domain` below is a bit misleading because it's really `Add domain`.
<center>
<img src="/img/kutt-custom-domain.png" class="shadow">
</center>
Then, in the Cloudron Dashboard add the custom domains as domain aliases in the `Location` view:
<center>
<img src="/img/kutt-domain-aliases.png" class="shadow">
</center>

View File

@ -1,431 +0,0 @@
# <img src="/img/lamp-logo.png" width="25px"> Lamp App
## About
Running LAMP apps on the Cloudron is no different than what is available on
many hosting providers. You can upload your PHP code using SFTP or the
[File Manager](/apps#file-manager) and then modify
the `.htaccess` and `php.ini` files as required. Most commonly used
[PHP extensions](#php-extensions) are pre-installed and you don't have to worry
about keeping them up-to-date.
The main advantage of using the Cloudron to host LAMP apps are:
* DNS configuration, Let's Encrypt (SSL) certificate installation and renewal are automated.
* Can use MySQL, redis and send email out of the box.
* Don't have to worry about app and server backups, restore and updates since the Cloudron takes care of it.
* Run multiple LAMP apps, isolated from one another, on same server easily.
* Questions? Ask in the [Cloudron Forum - LAMP (PHP 7.2)](https://forum.cloudron.io/category/15/lamp)
## Uploading LAMP app
The LAMP app can be upload using the Web terminal or SFTP.
### Using SFTP
The app can be uploaded using an SFTP client like [FileZilla](https://filezilla-project.org/).
You can find the SFTP login details when clicking on the `i` icon in the app grid.
<center>
<img src="/img/lamp-filezilla.png" class="shadow">
</center>
!!! note "SFTP Access"
SFTP access for non-admin users can be granted using the [access control UI](/apps/#restricting-app-access-to-specific-users).
## PHP settings
You can add custom [PHP settings](http://php.net/manual/en/ini.core.php) in `/app/data/public/.htaccess`
using the [File Manager](/apps#file-manager). Note that settings with a [mode](http://php.net/manual/en/configuration.changes.modes.php) of `PHP_INI_SYSTEM` cannot be set in htaccess files.
For example:
```
#example
php_value post_max_size 600M
php_value upload_max_filesize 600M
php_value memory_limit 128M
php_value max_execution_time 300
php_value max_input_time 300
php_value session.gc_maxlifetime 1200
```
## Apache settings
You can add custom [Apache settings](http://httpd.apache.org/docs/current/howto/htaccess.html) in `/app/data/public/.htaccess`
using the [File Manager](/apps#file-manager).
For example:
```
ServerSignature Off
```
## Custom HTTP headers
Custom HTTP headers can be set in `/app/data/public/.htaccess`. apache `mod_headers`
is already enabled. See this [article](https://www.digitalocean.com/community/tutorials/how-to-configure-apache-content-caching-on-ubuntu-14-04#setting-expires-and-caching-headers-on-content) for more information.
## PHP extensions
The LAMP app already includes most of the popular PHP extensions including the following:
* php-apcu
* php-cli
* php-curl
* php-fpm
* php-gd
* php-gmp
* php-imap
* php-intl
* php-json
* php-mbstring
* php-mcrypt
* php-mysql
* php-mysqlnd
* php-pgsql
* php-redis
* php-sqlite
* php-xml
* php-xmlrpc
* php-zip
You can check the complete list of pre-installed extensions by visiting the default index.php
of the app that prints out `phpInfo()`.
## Installing custom PHP extensions
The LAMP app supports installing custom PHP extensions. As an example, we will install [ionCube Loader](http://www.ioncube.com/),
which is often required to install commercial PHP apps.
!!! note "ionCube is already installed"
The LAMP app has built-in support for ionCube. The installation steps for ionCube here are just an example.
### Step 1: Download extension
Download and extract the `tar.gz` or `zip` Linux 64-bit ionCube packages to your PC/Mac from the
[ionCube website](https://www.ioncube.com/loaders.php) or use the
[direct link](http://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz).
### Step 2: Upload using SFTP
Upload the extracted directory to the SFTP root directory (`/app/data`) of the Cloudron app
(i.e one level above `public/`).
<center>
<img src="/img/lamp-upload-ioncube.png" class="shadow">
</center>
### Step 3: Enable extension
In the top level directory of the Cloudron app (in `/app/data`), you will find a `php.ini`.
Add the following line to enable the extension (just add it before the many `;extension` lines):
```
zend_extension=/app/data/ioncube/ioncube_loader_lin_7.2.so
```
The LAMP app has thread safety disabled, so we choose the extension without the `ts` extension.
### Step 4: Restart app
Lastly, restart the app for the extension to be enabled.
### Step 5: Verifying installation
Visit the LAMP app's default page to verify that the extension is enabled.
<center>
<img src="/img/lamp-ioncube-installed.png" class="shadow">
</center>
## Configuring MySQL
On the Cloudron, MySQL credentials are exposed as environment variables to the app.
These variables can change over time. This approach makes it possible for Cloudron
to transparently rotate the MySQL password periodically as a security measure and
also makes app easily migratable across Cloudrons.
The exposed environment variables are:
```
CLOUDRON_MYSQL_URL= # the mysql url (only set when using a single database, see below)
CLOUDRON_MYSQL_USERNAME= # username
CLOUDRON_MYSQL_PASSWORD= # password
CLOUDRON_MYSQL_HOST= # server IP/hostname
CLOUDRON_MYSQL_PORT= # server port
CLOUDRON_MYSQL_DATABASE= # database name (only set when using a single database, see below)
```
If the PHP app has a `config.php` that requires the MySQL credentials to be set, they can set as below:
```
'db' => array (
'hostname' => getenv("CLOUDRON_MYSQL_HOST"),
'username' => getenv("CLOUDRON_MYSQL_USERNAME"),
'password' => getenv("CLOUDRON_MYSQL_PASSWORD"),
'database' => getenv("CLOUDRON_MYSQL_DATABASE")
), // Database configuration
```
Some apps show a setup screen and will require the raw MySQL credentials. For such apps, the MySQL
credentials can be obtained using the [File Manager](/apps#file-manager) inside the file `/app/data/credentials.txt`.
<center>
<img src="/img/lamp-webterminal-mysql.png" class="shadow">
</center>
**IMPORTANT:** Once the installation is completed, be sure to switch the config file of the app to use
the environment variables using `getenv()` instead of the raw credentials. Otherwise, future updates
might break the app.
### Customizing MySQL
On Cloudron, the MySQL server is shared across all apps. Each app gets non-root credentials to
the database that helps isolate them from one another. This means one cannot configure mysql for
one app specifically.
However, many [MySQL variables](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html)
like `sql_mode` can be set per session by modifying your code as follows:
```
// connect to mysql and call the first query
mysql_query("SET SESSION SQL_MODE = 'TRADITIONAL'");
mysql_query("SET SESSION UNIQUE_CHECKS = false");
mysql_query("SET SESSION FOREIGN_KEY_CHECKS=0");
```
## phpMyAdmin
[phpMyAdmin](https://www.phpmyadmin.net/) can be accessed at the
`/phpmyadmin` path of the app. It uses basic auth through a htpasswd file
and is pre-setup with an admin account and a generated password.
The password can be found in the `phpmyadmin_login.txt` file,
alongside with details how to managed more users.
<br/>
<center>
<img src="/img/lamp-phpmyadmin.png" class="shadow" height="300px">
</center>
<br/>
If access does not work anymore, simply remove the file `.phpmyadminauth` and restart the app.
This will generate new phpMyAdmin credentials.
## Email
On Cloudron, Email credentials are exposed as environment variables to the app.
The exposed environment variables are:
```
CLOUDRON_MAIL_SMTP_SERVER # SMTP server
CLOUDRON_MAIL_SMTP_PORT # SMTP server port
CLOUDRON_MAIL_SMTPS_PORT # SMTPS server port. This is mostly for legacy apps
CLOUDRON_MAIL_SMTP_USERNAME # Username
CLOUDRON_MAIL_SMTP_PASSWORD # Password
CLOUDRON_MAIL_FROM # The MAIL FROM. If you want to change this, see [this](/apps/#mail-from-address)
CLOUDRON_MAIL_DOMAIN # The mail domain
```
You can use `getenv()` to get the values of the above environment variables in code. The raw values
can be obtained using the [File Manager](/apps/#file-manager) inside the file `/app/data/credentials.txt`.
!!! warning "The built-in PHP mail() function does not work"
It uses the local sendmail binary, which is **not configured** on Cloudron.
Use the following code instead, which has the same arguments and will pickup the correct environment variables:
```php
function cloudronmail($to, $subject, $body, $headers)
{
$smtp = stream_socket_client('tcp://' . getenv('CLOUDRON_MAIL_SMTP_SERVER') . ':' . getenv('CLOUDRON_MAIL_SMTP_PORT'), $eno, $estr, 30);
$B = 8192;
$c = "\r\n";
$s = getenv('CLOUDRON_MAIL_FROM');
fwrite($smtp, 'helo ' . getenv('HOSTNAME') . $c);
$junk = fgets($smtp, $B);
// Envelope
fwrite($smtp, 'mail from: ' . $s . $c);
$junk = fgets($smtp, $B);
fwrite($smtp, 'rcpt to: ' . $to . $c);
$junk = fgets($smtp, $B);
fwrite($smtp, 'data' . $c);
$junk = fgets($smtp, $B);
// Header
fwrite($smtp, 'To: ' . $to . $c);
if(strlen($subject)) fwrite($smtp, 'Subject: ' . $subject . $c);
if(strlen($headers)) fwrite($smtp, $headers); // Must be \r\n (delimited)
fwrite($smtp, $headers . $c);
// Body
if(strlen($body)) fwrite($smtp, $body . $c);
fwrite($smtp, $c . '.' . $c);
$junk = fgets($smtp, $B);
// Close
fwrite($smtp, 'quit' . $c);
$junk = fgets($smtp, $B);
fclose($smtp);
}
```
## Redis
On Cloudron, Redis credentials are exposed as environment variables to the app.
The exposed environment variables are:
```
CLOUDRON_REDIS_URL # redis URL of the form redis://username:password@host:port
CLOUDRON_REDIS_HOST # redis hostname
CLOUDRON_REDIS_PORT 6379 # redis port
CLOUDRON_REDIS_PASSWORD # redis password
```
You can use `getenv()` to get the values of the above environment variables in code. The raw values
can be obtained using the [File Manager](/apps#file-manager) inside the file `/app/data/credentials.txt`
## Custom Startup Script
A custom startup script can be placed at `/app/data/run.sh`. For example,
```
#!/bin/bash
echo "This script is called before the app starts"
# create symlinks
rm -rf /app/data/var/cache
mkdir -p /run/cache
ln -sf /run/cache /app/data/var/cache
```
## Cron support
For cron support, add a file named `/app/data/crontab` support.
The file can be edited using the [File Manager](/apps#file-manager)
or `FileZilla`.
<br/>
<center>
<img src="/img/lamp-filezilla-crontab.png" class="shadow" height="300px">
</center>
<br/>
The crontab contains a line like:
```
0 * * * * php /app/code/update.php --feeds
```
The app must be restarted after making any changes to the `crontab`
file. You can do this by pressing the 'Restart' button in the web terminal.
## Running composer, npm, bundler, ...
`composer`, `npm` and other common tools are installed in from the Cloudron base app image. To run these tools, first switch to the `www-data`
user (most of them should not be run as root).
```
su - www-data
cd public # this is where PHP code resides
composer require drush/drush
npm install
```
!!! note "Memory limit"
The LAMP app runs with 256MB ram by default which is not enough for Composer and possibly others. If you see a `Killed` error
message after a run, increase the [memory limit](/apps/#increasing-the-memory-limit-of-an-app)
of the app to 1GB.
## Laravel
To init a laravel app, you can use the [CLI tool](/custom-apps/cli/) to shell into the app
and run composer commands. If you have an existing Laravel app, you can skip this step and simply SFTP the app.
!!! note "Memory limit"
The LAMP app runs with 256MB ram by default which is not enough for Composer. We recommend increasing the
[memory limit](/apps/#increasing-the-memory-limit-of-an-app)
of the app to 1GB.
Switch to the `www-user` because the web server runs as that user.
```
root@869b2f2e-dccc-4e06-a22a-8aa0e9265c00:/app/data# su - www-data
www-data@869b2f2e-dccc-4e06-a22a-8aa0e9265c00:~$
```
We can now create a Laravel app, following the [Larabel Quickstart](https://laravel.com/docs/4.2/quick):
```
www-data@869b2f2e-dccc-4e06-a22a-8aa0e9265c00:~$ composer create-project laravel/laravel my-project
Installing laravel/laravel (v6.4.0)
- Installing laravel/laravel (v6.4.0): Loading from cache
Created project in my-project
```
The LAMP app has `public` as the document root. Let's move the project into the public directory:
```
www-data@869b2f2e-dccc-4e06-a22a-8aa0e9265c00:~$ cp -r my-project/. public
www-data@869b2f2e-dccc-4e06-a22a-8aa0e9265c00:~$ rm -rf my-project
```
Next, adjust the `/app/data/public/.htaccess` to serve lavarel's public directory:
```
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]
```
That's it! Your app should load on the browser now.
## Reverse proxy setup
If you want to run for example a custom WordPress within this app, please note that the code will run behind a nginx proxy.
Apps like WordPress require some code in `wp-config.php` to handle such a setup:
```
/*
http://cmanios.wordpress.com/2014/04/12/nginx-https-reverse-proxy-to-wordpress-with-apache-http-and-different-port/
http://wordpress.org/support/topic/compatibility-with-wordpress-behind-a-reverse-proxy
https://wordpress.org/support/topic/wp_home-and-wp_siteurl
*/
// If WordPress is behind reverse proxy which proxies https to http
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';
}
```
## Health check
The LAMP app expects a 2xx response from the '/' path. If your app is completely protected,
then the healthcheck logic will mark your app as `not responding` instead of `running`.
You can work around this by adding the following in `/app/data/public/.htaccess`:
```
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} CloudronHealth
RewriteRule ^ - [R=200]
```
Alternately, add something like below in the app's config.php or index.php:
```
if ($_SERVER["REMOTE_ADDR"] == '172.18.0.1') {
echo "Cloudron healthcheck reponse";
exit;
}
```

View File

@ -1,22 +0,0 @@
# <img src="/img/limesurvey-logo.png" width="25px"> LimeSurvey App
## About
LimeSurvey is the most versatile online survey tool for newcomers and professionals.
* Questions? Ask in the [Cloudron Forum - LimeSurvey](https://forum.cloudron.io/category/71/limesurvey)
* [LimeSurvey Website](https://www.limesurvey.org)
* [LimeSurvey forum](https://forums.limesurvey.org/)
## Command Line Tool
The CLI tool can run using the [Web Terminal](/apps#web-terminal) as follows:
```
sudo -E -u www-data php /app/code/application/commands/console.php
```
## Templates
Questionnaire templates can be downloaded from the LimeSurvey site [here](https://account.limesurvey.org/downloads/category/19-templates).

View File

@ -1,25 +0,0 @@
# <img src="/img/lychee-logo.png" width="25px"> Lychee App
## About
Lychee is a free photo-management tool, which runs on your server or web-space
* Questions? Ask in the [Cloudron Forum - Lychee](https://forum.cloudron.io/category/34/lychee)
* [Lychee Website](https://lychee.electerious.com/)
## User management
While lychee has a UI to change the password, there is no UI to reset the password.
If you forget the password, reset the password of the admin user, use the [Web terminal](/apps#web-terminal).
```
# sudo -E -u www-data php artisan lychee:reset_admin
```
After running the above command, just logout from Lychee and it will ask for creating the admin user again.
Note that existing data is not lost when resetting admin credentials.
## Using an existing folder structure
Lychee has it's own folder-structure and database. You have to re-upload or re-import all your photos to use them.

View File

@ -1,44 +0,0 @@
# <img src="/img/mailtrain-logo.png" width="25px"> Mailtrain App
## About
Mailtrain is a self hosted newsletter app.
* Questions? Ask in the [Cloudron Forum - Mailtrain](https://forum.cloudron.io/category/81/mailtrain)
* [Mailtrain Website](https://mailtrain.org/)
* [Mailtrain issue tracker](https://github.com/Mailtrain-org/mailtrain/issues)
## VERP handling
VERP is a feature where bounces are sent back to _special_ addresses.
Mailtrain [supports VERP](https://github.com/Mailtrain-org/mailtrain#5-set-up-verp)
and can be configured to process these bounces and automatically unsubscribe
addresses that are bouncing.
On the Cloudron, VERP handling is disabled because Cloudron's mail server
does not support it. We plan to add this feature in a future release. Rest
assured, Mailtrain can be used without any issue when VERP is not setup.
For now, bounces are sent to the Email "reply-to" address in the campaign
and have to be processesed manually.
## Changing Email "from" Address
Cloudron's email server does not allow apps to send emails with arbitrary
FROM addresses. This is a simple security measure that prevents apps from
unintentionally sending out emails that they are not supposed to send.
Cloudron assigns `location.app@domain` address by default to apps.
To change this email address, follow the instructions [here](email/#changing-the-from-address-of-an-app).
## External mail server
To revert from an external email server setup to the Cloudron setup,
set the SMTP Hostname to `localhost` and then restart the app.
This will inject the Cloudrons SMTP credentials automatically.
## Customizations
Additional settings can be added to `/app/data/production.toml` using
the [File manager](/apps#file-manager).

View File

@ -1,83 +0,0 @@
# <img src="/img/mastodon-logo.png" width="25px"> Mastodon App
## About
Mastodon is an open source decentralized social network - by the people for the people. Join the federation and take back control of your social media!
* Questions? Ask in the [Cloudron Forum - Mastodon](https://forum.cloudron.io/category/41/mastodon)
* [Mastodon Website](https://joinmastodon.org/)
* [Mastodon issue tracker](https://github.com/tootsuite/mastodon/issues/)
## Admin
To make a user an administrator, use the [Web Terminal](/apps/#web-terminal)
and run the following command:
```
bin/tootctl accounts modify <username> --role admin
```
## Adding users
When used with Cloudron authentication, simply add new users to the Cloudron dashboard.
Without Cloudron authentication, new users can be added using the CLI:
```
bin/tootctl accounts create testusername --email=test@cloudron.io
```
## Registration
Registration is closed by default. To enable, login to Mastodon as an admin and change the "Registration mode"
under `Administration` -> `Site Settings`.
## Federation
Cloudron will setup Mastodon accounts to be of the form `username@social.example.org` when you install
Mastodon at `social.example.org`. This domain is called the `LOCAL_DOMAIN` in Mastodon terminology.
Changing the `LOCAL_DOMAIN` will let you have handles as `username@example.org` even when installed at `social.example.org`
Changing the `LOCAL_DOMAIN` is not recommended since it is complicated and in most cases unnecessary.
This is because Mastodon account names are not intended to be remembered like usernames (it's not like email where
you can start following another account). Instead, users usually visit a website and click the 'Follow' button.
If you decide to not change the `LOCAL_DOMAIN`, no further configuration is required and your Mastodon instance
is already set up for federation.
### Changing LOCAL_DOMAIN
You can change the account domain name by using the [File Manager](/apps/#file-manager)
and changing `LOCAL_DOMAIN` in `/app/data/env.production`. After that, you have to configure `LOCAL_DOMAIN`'s
web server to serve up `.well-known/host-meta` query.
If `LOCAL_DOMAIN` is an app on Cloudron, you can use Cloudron's Well Known URI
support. Go to the `Domains` view and set the Mastodon domain in the `Advanced` settings:
<center>
<img src="/img/mastodon-wellknown.png" class="shadow">
</center>
If the `LOCAL_DOMAIN` is **NOT** hosted on Cloudron, you must figure out a suitable way to serve up the well-known documents.
Here are some hints:
* For WordPress, you can setup a redirect using [Redirection plugin](https://wordpress.org/plugins/redirection/)
* For Ghost,you can add a [redirects.json](https://ghost.org/tutorials/implementing-redirects/)
* For Surfer, simply upload the XML above into `.well-known/host-meta`.
* For anything else, setup nginx config as follows:
```
location = /.well-known/host-meta {
return 301 https://social.example.org$request_uri;
}
```
## Following users
To follow external users, visit their mastodon account and click on 'Follow'. This will popup a window asking your
mastodon identity (which will be `username@LOCAL_DOMAIN`).
If you have an existing account on another server, you can bring those connections with you to your own server.
For this, go to Settings -> Data Export and download your following list as a CSV file, and finally
on your own server, you go to Settings -> Import and upload that file.

View File

@ -1,49 +0,0 @@
# <img src="/img/piwik-logo.png" width="25px"> Matomo App
## About
Matomo is Google Analytics alternative that protects your data and your customers' privacy
* Questions? Ask in the [Cloudron Forum - Matomo](https://forum.cloudron.io/category/87/matomo)
* [Matomo Website](https://matomo.org/)
* [Matomo forum](https://forum.matomo.org/)
* [Matomo issue tracker](https://github.com/matomo-org/matomo/issues/)
## Installing plugins
Matomo plugins can be installed from the Marketplace view. Only the Matomo super-user
can install plugins (Matomo admins cannot install plugins).
Please be aware that there is a bug in Matomo that you [cannot install plugins when LDAP authentication is enabled](https://github.com/matomo-org/matomo/issues/14770).
To workaround this issue:
* Deactivate the LDAP plugin. `Plugins` -> `LoginLdap` -> `Deactivate`.
* Install required plugins
* Re-enable the LDAP plugin
## UI Errors
The matomo UI shows many [intermittent error messages](https://github.com/matomo-org/matomo/issues/10578)
on Firefox. We recommend using an alternate browser.
## Debugging the tracker
To [debug the tracker](https://developer.matomo.org/api-reference/tracking-api#debugging-the-tracker), add the following to `config.ini.php`
using the [file manager](/apps/#file-manager):
```
[Tracker]
debug = 1
debug_on_demand = 1
```
You can then debug the request using the following curl request (be sure to fix up the idsite):
```
curl -X POST 'https://matomo.example.com/matomo.php?idsite=1&rec=1&bots=1&debug=1
```

View File

@ -1,48 +0,0 @@
# <img src="/img/mattermost-logo.png" width="25px"> Mattermost App
## About
Mattermost is an open source, self-hosted Slack-alternative.
* Questions? Ask in the [Cloudron Forum - Mattermost](https://forum.cloudron.io/category/26/mattermost)
* [Mattermost Website](https://mattermost.org/)
* [Mattermost forum](https://forum.mattermost.org/)
* [Mattermost docs](https://docs.mattermost.com/index.html)
* [Mattermost issue tracker](https://github.com/mattermost/mattermost-server/issues)
## Config
The config file is located at `/app/data/config.json` and can be edited using the [File manager](/apps/#file-manager).
Be sure to restart the app after making changes to the config file.
## Command Line Tool
The [Mattermost CLI tool](https://docs.mattermost.com/administration/command-line-tools.html) can be used
to administer user and team management tasks.
To use the CLI, open the [Web Terminal](/apps#web-terminal) and run the following command:
```
sudo -u cloudron /app/code/bin/mattermost --config=/app/data/config.json help
```
## Migration
In you want to migrate your existing non-Cloudron mattermost installation to Cloudron, do
the following:
* [Export data](https://docs.mattermost.com/administration/bulk-export.html#bulk-export-data) from the old
installation as follow:
```
sudo ./mattermost export bulk file.json --all-teams
```
* Install mattermost on Cloudron. Then use the [Web Terminal](/apps#web-terminal) to first upload
the `file.json` above to the `/tmp` directory using the Upload button in the top of the Web terminal. Then,
import it using the following command:
```
sudo -u cloudron /app/code/bin/mattermost --config=/app/data/config.json import bulk --apply /tmp/file.json
```

View File

@ -1,35 +0,0 @@
# <img src="/img/mautic-logo.png" width="25px"> Mautic App
## About
Mautic a free and opensource marketing automation tool.
* Questions? Ask in the [Cloudron Forum - Mautic](https://forum.cloudron.io/category/46/mautic)
* [Mautic Website](https://www.mautic.org/)
* [Mautic forum](https://forum.mautic.org/)
* [Mautic issue tracker](https://github.com/mautic/mautic/issues)
## System cron jobs
Mautic often requires cron jobs to be triggered manually. For this, open the [Web terminal](/apps/#web-terminal)
and run the job manually like so:
```
sudo -E -u www-data php /app/code/bin/console mautic:segments:update
```
You can look into `/app/data/crontab.system` to look into the various pre-configured cron jobs.
## Custom cron jobs
For cron support, edit the file `/app/data/crontab.user` using the the [File manager](/apps/#file-manager).
The crontab contains a line like:
```
0,15,30,45 * * * * sudo -E -u www-data php /app/code/app/console mautic:integration:fetchleads --integration=Hubspot > /proc/$(cat /var/run/crond.pid)/fd/1 2>&1
```
The app must be restarted after making any changes to the `crontab` file.

View File

@ -1,151 +0,0 @@
# <img src="/img/mediawiki-logo.png" width="25px"> MediaWiki App
## About
MediaWiki is a collaboration and documentation platform brought to you by a vibrant community.
* Questions? Ask in the [Cloudron Forum - MediaWiki](https://forum.cloudron.io/category/80/mediawiki)
* [MediaWiki Website](https://www.mediawiki.org)
## Access Control
### Default setup
When using Cloudron SSO, the wiki is setup to be editable only by Cloudron users.
Anonymous users can read all pages. Cloudron admins are added into the 'admins'
mediawiki group. This group is given `bureaucrat` permission. Please note that
when using this option, external registration [cannot be enabled](https://stackoverflow.com/questions/46403601/mediawiki-its-not-possible-to-create-user-account-using-ldap-authentication-ex).
When not using Cloudron SSO, the wiki is setup to be editable by users with a
registered wiki account.
### Changing permissions
Use the [File manager](/apps#file-manager) to edit the values in
`/app/data/LocalSettings.php`.
Here are some commonly requested settings:
* To disable read access for anonymous users, add the following line:
$wgGroupPermissions['*']['read'] = false;
* To allow write access to anonymous users, add the following line:
$wgGroupPermissions['*']['edit'] = true;
* To disable email confirmation before new users are allowed to edit files:
$wgEmailConfirmToEdit = false;
* To disallow account creation and remove the 'Create account' link:
$wgGroupPermissions['*']['createaccount'] = false;
## Administrator operations
MediaWiki has 3 built-in groups: bots, bureaucrats and sysop. sysops are administrators that have
[special previliges](https://www.mediawiki.org/wiki/Help:Sysops_and_permissions):
* Protecting and unprotecting pages, and editing protected pages
* Deleting pages, and undeleting
* Blocking a user or IP address, and unblocking them.
Bureaucrats are sysops with the additional role of being able to **promote users to be sysops**.
Sysops can perform a number of maintanence operations by vising `/wiki/Special:SpecialPages` of the wiki.
### Setting a custom icon
To set a custom icon, use the [File manager](/apps#file-manager) and upload a file named
`/app/data/images/wiki.png`.
## Extensions
### Installing
MediaWiki [extensions](https://www.mediawiki.org/wiki/Manual:Extensions) can be installed
as follows:
* Use the [File manager](/apps#file-manager) to upload the tarball and extract the package under `/app/data/extensions`.
* Change the ownership of the newly uploaded directory to `www-data`
* Load the skin in `/app/data/LocalSettings.php` by adding this line:
```
wfLoadExtension( '<extension-name>' );
```
* Additional extension settings may be set in `/app/data/LocalSettings.php`
### Suppressing skins
To [suppress](https://www.mediawiki.org/wiki/Manual:Skin_configuration) one or more skins add the following line
to `/app/data/LocalSettings.php`:
```
$wgSkipSkins = array( "cologneblue", "monobook" );
```
## Skins
### Installing
MediaWiki [skins](https://www.mediawiki.org/wiki/Manual:Gallery_of_user_styles) can be installed
as follows:
* Use the [File manager](/apps#file-manager) to upload the tarball and extract the package under `/app/data/skins`.
* Change the ownership of the newly uploaded directory to `www-data`
* Load the skin in `/app/data/LocalSettings.php` by adding this line:
```
wfLoadSkin( '<skin-name>' );
```
* The default skin for new users can be changed by adding this line to `/app/data/LocalSettings.php`:
```
$wgDefaultSkin = '<skin-name>';
```
### Suppressing skins
To [suppress](https://www.mediawiki.org/wiki/Manual:Skin_configuration) one or more skins add the following line
to `/app/data/LocalSettings.php`:
```
$wgSkipSkins = array( "cologneblue", "monobook" );
```
## Exporting a Wiki
To export in XML format, use the [dumpBackup](https://www.mediawiki.org/wiki/Manual:DumpBackup.php) script as part of MediaWiki
installation. Open a [Web terminal](/apps#web-terminal) and run the following
commands:
```
# cd /app/code/maintenance
# php dumpBackup.php --full > /tmp/dump.xml
```
You can download the dump using the download button at the top of the terminal and entering `/tmp/dump.xml`.
## Importing a Wiki
To import in XML format, use the [importDump](https://www.mediawiki.org/wiki/Manual:ImportDump.php) script as part of MediaWiki
installation.
Open a [Web terminal](/apps#web-terminal):
* Upload the XML using the Upload button
* Run the following commands
```
# cd /app/code/maintenance
# php importDump.php < /tmp/dump.xml
You might want to run rebuildrecentchanges.php to regenerate RecentChanges,
and initSiteStats.php to update page and revision counts
# php rebuildrecentchanges.php
# php initSiteStats.php
```
When importing a wiki, the Main Page might still appear without the correct content. You can fix this by going to the Main Page's History and undoing the latest change. Please note that the administrator account needs a valid email for this to work (preferences -> confirm email address).

View File

@ -1,14 +0,0 @@
# <img src="/img/meemo-logo.png" width="25px"> Meemo App
## About
Meemo simplifies your life by capturing what's on your mind. From short lists, ideas, links, inspiration, to lengthy research, pictures and memories.
* Questions? Ask in the [Cloudron Forum - Meemo](https://forum.cloudron.io/category/35/meemo)
* [Meemo Website](https://meemo.minimal-space.de/)
## Chrome extension
The [Meemo chrome extension](https://chrome.google.com/webstore/detail/meemo/lhkjapedcimeeiildlmebipnekekjmod)
allows to add the current page with notes into Meemo.

View File

@ -1,11 +0,0 @@
# <img src="/img/metabase-logo.png" width="25px"> Metabase App
## About
Metabase is the simplest, fastest way to get business intelligence and analytics to everyone in your company.
* Questions? Ask in the [Cloudron Forum - Metabase](https://forum.cloudron.io/category/86/metabase)
* [Metabase Website](https://www.metabase.com)
* [Metabase forum](https://discourse.metabase.com/)
* [Metabase issue tracker](https://github.com/metabase/metabase/issues)

View File

@ -1,29 +0,0 @@
# <img src="/img/minecraft-logo.png" width="25px"> Minecraft App
## About
This app sets up a multiplayer minecraft server.
* Questions? Ask in the [Cloudron Forum - Minecraft Server](https://forum.cloudron.io/category/49/minecraft)
* [Minecraft Server Website](https://minecraft.net/)
# Supported editions
There are 3 different app packages:
* [Minecraft Java Edition Server](https://minecraft.gamepedia.com/Java_Edition)
* [Minecraft Java Edition Forge server](https://forums.minecraftforge.net/)
* [Bedrock/Pocket Edition](https://minecraft.gamepedia.com/Bedrock_Edition)
# Java Edition
## Common commands
Please note that you have to run these commands when the user is logged into the app instance from the Cloudron dashboard.
The username and password are your Cloudron credentials.
* Whitelist a client - `/whitelist minecraft_username`
* Blacklist a client - `/blacklist minecraft_username`
* Become the server operator - `/op your_minecraft_username`
* Reload server after chaning config files like **server.properties** - `/reload`

View File

@ -1,47 +0,0 @@
# <img src="/img/minio-logo.png" width="25px"> MinIO App
## About
Minio is a high performance S3 compatible Object Storage.
* Questions? Ask in the [Cloudron Forum - Minio](https://forum.cloudron.io/category/69/minio)
* [Minio Website](http://www.minio.io)
* [Minio issue tracker](https://github.com/minio/minio/issues)
## Admin credentials
To change admin credentials, use the [Web terminal](/apps#web-terminal) to edit
the `credentials` section in `/app/data/data/.minio.sys/config/config.json`. Note that MinIO does
not save this JSON file with identation/formatting, making it hard to edit it. For this reason,
we have written a small script that is part of the package to edit it easily.
To set credentials:
```
# /app/code/minio-credentials set NEWACCESSKEY NEWSECRETKEY
Credentials updated. Restart minio app for new credentials to take effect.
```
To get the current credentials (in case you forgot it):
```
# /app/code/minio-credentials get
Access Key: NEWACCESSKEY
Secret Key: NEWSECRETKEY
```
!!! note "Access Key Contraints"
Please see the [AWS Docs](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html) for
length and pattern restrictions of the access key and secret key. In short, make sure it matches the `[\w+=,.@-]+` regexp
and has atleast 8 characters
## Cloudron Backup
Cloudron supports [backing up to minio](/backups/#backing-up-to-minio).
Backing up a Cloudron to a minio installed in another Cloudron will work fine. However, backing up a
Cloudron to a minio installed in the very same Cloudron is not supported.
## Custom configuration
Custom config variables can be exported in `/app/data/env.sh`. This file is sourced automatically on startup.

View File

@ -1,42 +0,0 @@
# <img src="/img/monica-logo.png" width="25px"> Monica App
## About
Monica helps you organize the social interactions with your loved ones.
* Questions? Ask in the [Cloudron Forum - MonicaHQ](https://forum.cloudron.io/category/24/monica)
* [MonicaHQ Website](https://monicahq.com)
* [MonicaHQ issue tracker](https://github.com/monicahq/monica/issues)
## Multiuser
By default, Monica is setup to be single user.
To enable user registration, open the [File manager](/apps#file-manager) and add
the following variable in `/app/data/env`:
```
APP_DISABLE_SIGNUP=false
```
Restart the app and the login page will show a sign-up link in the login page.
## Mobile App
To enable the mobile app, open the [Web terminal](/apps#web-terminal) and run
the following command:
```
$ php artisan passport:client --password --name="MobileApp"
Password grant client created successfully.
Client ID: 8
Client Secret: Q1gM1DXaMUt8rdvU3MhC4dnxGrV2EdjnBfyj9Sjm
```
Now edit the file `/app/data/env` and search/edit the values:
```
PASSPORT_PERSONAL_ACCESS_CLIENT_ID=
PASSPORT_PERSONAL_ACCESS_CLIENT_SECRET=
```

View File

@ -1,24 +0,0 @@
# <img src="/img/moodle-logo.png" width="25px"> Moodle App
## About
Moodle is the world's most popular learning management system. Start creating your online learning site in minutes!
* Questions? Ask in the [Cloudron Forum - Moodle](https://forum.cloudron.io/category/102/moodle)
* [Moodle Website](https://moodle.org/)
* [Moodle forum](https://moodle.org/course/)
## Updates
Moodle is a complex application with a complicated upgrade procedure. It supports
over 25 different [types of plugins](https://docs.moodle.org/dev/Plugin_types) each
located in a different location in the source code. While we have automated the upgrade,
do not use any more plugins than necessary to reduce update issues. On the same note,
do not edit the source code of core moodle since it will be overwritten on an update.
## Themes
To install a theme, extract the new theme under `/app/data/moodle/theme` using the
[File manager](/apps/#file-manager). Then, complete the installation by going to
`Site Administration` in Moodle.

View File

@ -1,34 +0,0 @@
# <img src="/img/navidrome-logo.png" width="25px"> Navidrome App
## About
Navidrome is an open source web-based music collection server and streamer.
* Questions? Ask in the [Cloudron Forum - Navidrome](https://forum.cloudron.io/category/108/navidrome)
* [Navidrome Website](https://www.navidrome.org/)
* [Navidrome community](https://www.navidrome.org/community/)
* [Navidrome issue tracker](https://github.com/deluan/navidrome/issues)
## Music folder
To change the music folder, edit `config.toml` using the [File Manager](/apps/#file-manager)
```
MusicFolder = '/media/MyMusic`
```
Be sure to restart the app after changing the music folder location.
## Custom Configuration
Custom configuration can be placed in `/app/data/config.toml`.
See the [Navidrome docs](https://www.navidrome.org/docs/usage/configuration-options/) for
all the options.
## CLI
To trigger a scan, open a [Web terminal](/apps#web-terminal) and run the following command:
```
gosu cloudron:cloudron /app/code/navidrome -c /app/data/config.toml scan -f
```

View File

@ -1,260 +0,0 @@
# <img src="/img/nextcloud-logo.png" width="25px"> Nextcloud App
## About
Nextcloud is the self-hosted productivity platform that keeps you in control.
* Questions? Ask in the [Cloudron Forum - Nextcloud](https://forum.cloudron.io/category/10/nextcloud)
* [Nextcloud Website](https://www.nextcloud.com)
* [Upstream Nextcloud forum](https://help.nextcloud.com/categories)
* [Upstream Nextcloud issue tracker](https://github.com/nextcloud/server/issues)
## Installing Nextcloud client on Ubuntu
Nextcloud provides its own desktop client for Linux in form of AppImage which can
be downloaded by issuing the following command:
```
sudo wget -nv https://download.nextcloud.com/desktop/releases/Linux/latest -O Nextcloud.AppImage
```
Alternatively, for Ubuntu, the latest version of the client can be installed from PPA following the instructions [here](https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client):
```
sudo add-apt-repository ppa:nextcloud-devs/client
sudo apt-get update
sudo apt-get install nextcloud-client
```
For other platforms, please follow client installation instructions located at the [Nextcloud website](https://nextcloud.com/install/#install-clients).
## Plugin warning
We do not recommend installing apps in Nextcloud unless absolutely required. Maintaining such systems is a
security hassle since you need to keep them up-to-date. Apps often break when Nextcloud is updated and you
have to know how to fix them. Finally, Nextcloud apps are not run sandboxed. This means that a faulty plugin
might compromise the whole app and also not make the app work at all. Nextcloud apps also write into the same
database as the main application which might result in unintended data corruption.
For the above reason, extensive use of Nextcloud plugins is highly discouraged since it will eventually break
your install.
## Running occ tool
The `occ` tool can be used for Nextcloud [administrative tasks](https://docs.nextcloud.com/server/19/admin_manual/configuration_server/occ_command.html).
The occ command can be run using the [Web terminal](/apps#web-terminal). For example, to list the users:
```
sudo -u www-data php -f /app/code/occ user:list
```
## Resetting admin password
To reset the admin password, run the following occ command using the [Web terminal](/apps#web-terminal):
```
sudo -u www-data php -f /app/code/occ user:resetpassword admin
```
If you had deleted the admin user previously by mistake, you can create it again:
```
sudo -u www-data php -f /app/code/occ user:add --display-name="Admin" -g admin admin
```
You can also make an existing user an admin:
```
sudo -u www-data php -f /app/code/occ group:adduser admin <username> -n
```
## LDAP Sync
Nextcloud will periodically sync users from LDAP. However, we have noticed that this fails at times. To trigger a manual sync,
use the [Web terminal](/apps#web-terminal) and run the following command:
```
sudo -u www-data php -f /app/code/occ ldap:check-user --update <username>
```
## Managing deleted files
When you delete a file in Nextcloud, it is not [immediately deleted](https://docs.nextcloud.com/server/19/user_manual/files/deleted_file_management.html) permanently. Instead, it is moved into the trash bin.
It is not permanently deleted until you manually delete it, or when the Deleted Files app deletes it to make room for
new files.
To configure, how items are permanently deleted, configure the [trashbin_retention_obligation](https://docs.nextcloud.com/server/19/admin_manual/configuration_server/config_sample_php_parameters.html#deleted-items-trash-bin) parameter.
The parameter can be edited using the [File Manager](/apps#file-manager) and editing the file `config/config.php`.
## Attaching external storage
Many VPS providers like Digital Ocean, Linode allow attaching external block storage to the server. Nextcloud has a feature
that allows mounting additional directories on the server as [external storage](https://docs.nextcloud.com/server/9/admin_manual/configuration_files/external_storage_configuration_gui.html).
Mounting an existing server directory as 'external storage' on Nextcloud is currently not supported.
If the intent is to simply increase the amount of storage available to Nextcloud (since you have run out of disk
space in the default data partition), there are two options:
* Configure Nextcloud to use an external object storage like Digital Ocean Spaces, AWS S3 etc
* [DigitalOcean Spaces Guide](https://www.digitalocean.com/community/questions/is-it-possible-to-mount-do-spaces-as-external-storage-in-nextcloud-as-i-mount-aws-s3-storage)
* Configure Cloudron to store all of Nextcloud's data in the external block storage. To achieve this, follow the
[guide](/storage/#moving-a-single-apps-data-directory-to-another-location) for
moving a single app's data directory to another location.
Moving Nextcloud's directory entirely has the advantage that the iOS/Android app's Instant Upload feature uses
this new disk.
## Rescan files
Nextcloud will not pick up files if they are added directly in the data directory of the user on the server.
To make it rescan, open a [Web terminal](/apps#web-terminal) and run the following command:
```
sudo -u www-data php -f /app/code/occ files:scan <username>
```
To rescan external storage, use the `--path` parameter.
```
sudo -u www-data php -f /app/code/occ files:scan <username> --path=/<username>/files/externaltest
```
## Fixing a broken install
The [Nextcloud App Store](https://apps.nextcloud.com/) has a wide variety of apps that can be installed on
top of Nextcloud. Nextcloud has no native sandboxing mechanism for plugins - if a plugin fails, it will bring
down the whole installation. Plugins might also break an installation after a Nextcloud upgrade. For this reason,
we encourage carefully reviewing apps before using them.
To fix a broken installation, open a [Web terminal](/apps#web-terminal) and repair the app. Then run the following
commands:
```
sudo -u www-data php -f /app/code/occ app:list # this lists the apps
sudo -u www-data php -f /app/code/occ app:disable <app> # use this to disable the faulty app
sudo -u www-data php /app/code/occ maintenance:mode --off
```
After running the commands, end the repair for the app to come up.
## Collabora Online Document Editor
Collabora Online is a powerful online office suite that supports all major document, spreadsheet and presentation
file formats, which you can integrate in your own infrastructure. Key features are collaborative editing and
excellent office file format support.
See the [Collabora App docs](app/collabora) on how to setup Nextcloud with Collabora Office.
<img src="/img/nextcloud-collabora-editor.png" class="shadow">
## Previews
By default, Nextcloud generates previews for text and images. Previews for other document types is
[disabled for privacy reasons](https://docs.nextcloud.com/server/19/admin_manual/configuration_server/config_sample_php_parameters.html#previews). Note that generating previews also require more memory and CPU.
To enable previews for PDF and OpenOffice documents, open a [File Manager](/apps#file-manager) and
edit `config/config.php` and add the following setting:
```
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
0 => 'OC\\Preview\\TXT',
1 => 'OC\\Preview\\MarkDown',
2 => 'OC\\Preview\\OpenDocument',
3 => 'OC\\Preview\\PDF',
4 => 'OC\\Preview\\MSOffice2003',
5 => 'OC\\Preview\\MSOfficeDoc',
6 => 'OC\\Preview\\PDF',
7 => 'OC\\Preview\\Image',
8 => 'OC\\Preview\\Photoshop',
9 => 'OC\\Preview\\TIFF',
10 => 'OC\\Preview\\SVG',
11 => 'OC\\Preview\\Font',
12 => 'OC\\Preview\\MP3',
13 => 'OC\\Preview\\Movie',
14 => 'OC\\Preview\\MKV',
15 => 'OC\\Preview\\MP4',
16 => 'OC\\Preview\\AVI',
),
```
## Removing NextCloud users
To delete obsolete LDAP users and their data, see the [nextcloud docs](https://docs.nextcloud.com/server/stable/admin_manual/configuration_user/user_auth_ldap_cleanup.html?highlight=ldap).
## Skeleton directory
A skeleton directory provides the initial list of files for Nextcloud when a new user is created. By default,
the skeleton directory is `/app/code/core/skeleton`. This directory is read only but can be changed to a custom
directory.
* Open the [File Manager](/apps#file-manager).
* Create a directory named `skeleton`.
* Set the owner of the directory to `www-data`. You can do this by clicking the icon to the right of the directory.
* Add files and directories to this new skeleton directory. Be sure to fix ownership of the files to `www-data`
* Edit `config/config.php` to contain the following line:
```
'skeletondirectory' => '/app/data/skeleton'
```
New users will receive the contents of `skeleton` directory on first log-in. The `skeletondirectory` property above
can be set to empty string (`''`) to have no files added on first login.
## Email
NextCloud has apps like Mail, Rainloop to access email.
!!! warning "Not recommended"
We do not recommend installing apps in Nextcloud unless absolutely required.
Maintaining such systems is a security hassle since you need to keep them up-to-date.
Apps often break when Nextcloud is updated and you have to know how to fix them.
Finally, Apps are not run sandboxed. This means that a faulty plugin might compromise
the whole app and also not make the app work at all.
### Rainloop App
That warning aside, it is possible to configure Rainloop to access mail as follows.
1. Login to Rainloop admin. You can find the admin link by going to Nextcloud `Settings` -> `Administration` -> `Additional Settings`.
2. Login as `admin`/`12345`
3. Add your domain for email. In the example below, we use `my.cloudron.cf`.
IMAP and SMTP configuration:
<center>
<img src="/img/nextcloud-rainloop-domain.png" class="shadow" width="500px">
</center>
Note that the SMTP encryption is turned off intentionally. This is safe because the communication
is within the same server. (STARTTLS is disabled by Cloudron Email intentionally in the internal
network for app compatibility when used with various languages and frameworks).
Sieve configuration:
<center>
<img src="/img/nextcloud-rainloop-sieve.png" class="shadow" width="500px">
</center>
### Mail App
The Mail icon will appear in the top bar of Nextcloud. You can configure your mailbox
as below:
<center>
<img src="/img/nextcloud-mail-setup.png" class="shadow" width="300px">
</center>
Note that the SMTP encryption is turned off intentionally. This is safe because the communication
is within the same server. (STARTTLS is disabled by Cloudron Email intentionally in the internal
network for app compatibility when used with various languages and frameworks).

View File

@ -1,42 +0,0 @@
# <img src="/img/nodebb-logo.png" width="25px"> NodeBB App
## About
NodeBB is next generation forum software. It's powerful, mobile-ready and easy to use.
* Questions? Ask in the [Cloudron Forum - NodeBB](https://forum.cloudron.io/category/18/nodebb)
* [NodeBB Website](https://nodebb.org/)
* [NodeBB forum](https://community.nodebb.org/)
* [NodeBB issue tracker](https://github.com/NodeBB/NodeBB/issues)
## Installing plugins
NodeBB admin dashboard offers a UI to install plugins and themes in their dashboard.
However, some plugins/themes may need to be installed by hand. To do so, use the
[Web terminal](/apps#web-terminal):
```
cd /app/code
/usr/local/bin/gosu cloudron:cloudron npm install nodebb-theme-timuu
```
After installation, restart the app and activate the plugin in the NodeBB
dashboard.
## Disabling plugins
The list of plugins can be viewed as follows:
```
cd /app/code
./nodebb list
```
Plugins can sometimes make NodeBB not start up. To fix this, first pause the app
and then
```
cd /app/code
./nodebb reset -p nodebb-plugin-pluginname
```

View File

@ -1,46 +0,0 @@
# <img src="/img/onlyoffice-logo.png" width="25px"> ONLYOFFICE App
## About
ONLYOFFICE has to be integrated with some the document store. On Cloudron there is currently Nextcloud available as a
document store application, other [3rdparty solutions](https://www.onlyoffice.com/all-connectors.aspx) are also supported.
* Questions? Ask in the [Cloudron Forum - ONLYOFFICE Docs](https://forum.cloudron.io/category/13/onlyoffice)
* [ONLYOFFICE Website](https://www.onlyoffice.com/)
* [ONLYOFFICE forum](https://dev.onlyoffice.org/)
* [ONLYOFFICE Docs issue tracker](https://github.com/ONLYOFFICE/CommunityServer/issues)
## Changing default app secret
The default secret for the ONLYOFFICE app package in Cloudron is `changeme`. Please change that to some unique secret:
* Open a [File Manager](/apps/#file-manager) into the app
* Edit the file `/app/data/config/production-linux.json`
* Locate the section called `secret`.
```
"secret": {
"inbox": {
"string": "changeme"
},
"outbox": {
"string": "changeme"
}
```
* Be sure to change the **two secrets** above to the same unique password.
* Restart the app
## Setup Nextcloud connector
!!! warning "Do not install the Document Server"
There are two ONLYOFFICE apps - [Community Document Server](https://apps.nextcloud.com/apps/documentserver_community) and
[ONLYOFFICE](https://apps.nextcloud.com/apps/onlyoffice). Be sure to install the latter.
To integrate ONLYOFFICE into Nextcloud for office document editing and collaboration, install [ONLYOFFICE](https://apps.nextcloud.com/apps/onlyoffice)
from the Nextcloud app library and configure the plugin as follows, adjusting the domain and secret:
<img src="/img/onlyoffice-nextcloud-integration.png" class="shadow">

View File

@ -1,27 +0,0 @@
# <img src="/img/openproject-logo.png" width="25px"> OpenProject App
## About
OpenProject is an efficient classic, agile or hybrid project management in a secure environment.
* Questions? Ask in the [Cloudron Forum - OpenProject](https://forum.cloudron.io/category/31/openproject)
* [OpenProject Website](https://www.openproject.org/)
* [OpenProject forum](https://community.openproject.com/projects/openproject/boards/)
* [OpenProject issue tracker](https://community.openproject.com/projects/openproject/boards/2905)
## User management
### Cloudron Directory
Cloudron users can login to the OpenProject. The Cloudron *admin* status however is not carried over to the app, thus it comes with a pre-setup admin account,
which requires a password change upon first login. Check the post-install notes when installing the app for admin account username and password.
OpenProject supports various authentication methods in parallel, this means even when Cloudron Directory is used,
non Cloudron users can still be invited to the app.
### Without Cloudron Directory
The app has a pre-setup admin account, which requires a password change upon first login.
Check the post-install notes when installing the app for admin account username and password.
Other users can be invited or added by this admin.

View File

@ -1,116 +0,0 @@
# <img src="/img/openvpn-logo.png" width="25px"> OpenVPN App
## About
OpenVPN provides flexible VPN solutions to secure your data communications, whether it's for
Internet privacy, remote access for employees, securing IoT, or for networking Cloud data centers
* Questions? Ask in the [Cloudron Forum - OpenVPN](https://forum.cloudron.io/category/20/openvpn)
* [OpenVPN Website](https://openvpn.org/)
* [Upstream OpenVPN forum](https://community.openvpn.net/openvpn)
## Desktop and Mobile Clients
The OpenVPN app has been tested with the following clients:
* NetworkManager on Ubuntu
* [Tunnelblick](https://www.tunnelblick.net/) on Mac OS X
* [OpenVPN for Android](https://play.google.com/store/apps/details?id=de.blinkt.openvpn)
## How to connect on Ubuntu 16.04
* Install the Network Manager OpenVPN plugin
```
sudo apt-get install network-manager-openvpn-gnome
```
* Download the .ovpn embedded certs config file from the OpenVPN app
<center>
<img src="/img/openvpn-config.png" class="shadow">
</center>
* Open Network Manager, `VPN Settings` -> `Import from file...`
## Admin Settings
The admin panel can be used to customize some of the popular settings like
the network address and client-to-client connectivity.
To make a user an admin, edit the file `/app/data/config.ini` and add
the username to the `admins` key. Note that you have to restart the app
and re-login for the admin role to take effect.
<center>
<img src="/img/openvpn-settings.png" class="shadow">
</center>
## DNS Server
This app has a built-in Dnsmasq DNS server (which is pushed to clients). This DNS server
allows resolution of connected clients using `devicename.username`.
You can configure this DNS server by editing `/app/data/dnsmasq.conf` using the (/apps#file-manager).
For example, to make Dnsmasq forward DNS requests to an internal DNS server, use the following:
```
server=internal-server-ip
```
See [Dnsmasq docs](http://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html) for all the available options.
## Customizations
You can customize various settings by editing `/app/data/openvpn.conf` using
the [File Manager](/apps#file-manager). Some popular options are
discussed below:
### Custom routes
By default, clients are configured to route all traffic via the VPN. If you disable this, you would
want to push custom routes for the network and hosts behind the VPN. For example, edit the file as below and
restart the app.
```
# push "redirect-gateway def1 bypass-dhcp"
push "route 178.128.183.220 255.255.255.255"
push "route 178.128.74.0 255.255.255.0"
```
## Privacy
The OpenVPN app provides a tunnel to channel all the traffic from your
devices via the Cloudron. Websites and services that you visit will
not see the IP address of your devices but they *will* see the IP
address and possibly the RDNS hostname of your Cloudron.
You can check what sort of information can be gathered from your
Cloudron's IP address using [ipleak.net](https://ipleak.net).
## Custom Client Configuration
Custom Client Configuration allows the OpenVPN admin to assign a specific IP address to a client or push specific options
such as compression and DNS server to a client.
To add custom settings:
* Edit `/app/data/openvpn.conf` and add the following line:
```
client-config-dir /app/data/ccd
```
* Create the directory `/app/data/ccd`
* You can create custom client configs in this directory by creating files with the name `[username]_[devicename]`. You can also
create a file named `DEFAULT` which will be used if no device specific file exists.
* For example, to assign a static IP to a client, you can add the line `ifconfig-push 10.8.0.50 10.8.0.51` (requires IP pair)
* Restart the app for changes to take effect.
## Troubleshooting
If you are unable to connect to the OpenVPN server, make sure that your VPS firewall
allows the OpenVPN port (by default, this is 7494/TCP). For example, you might have
to add this incoming port as part of EC2 security group.

View File

@ -1,54 +0,0 @@
# <img src="/img/osticket-logo.png" width="25px"> osTicket App
## About
osTicket is the worlds most popular customer support software.
* Questions? Ask in the [Cloudron Forum - osTicket](https://forum.cloudron.io/category/89/osticket)
* [osTicket Website](https://osticket.com/)
* [osTicket forum](https://forum.osticket.com/)
* [osTicket issue tracker](https://github.com/osTicket/osTicket/issues)
## Admin Checklist
* Do not remove the email address of `osTicket Alerts` under 'Email Addresses'. This mailbox is managed
by Cloudron. However, you can change the email address from Cloudron dashboard's [Email section](/apps/#mail-from-address).
* Change the administrator email under `Emails` -> `Email Settings and Options`. If you miss this,
osTicket will send alerts to this address and bounces get attached to tickets.
## Emails
osTicket can be configured to process emails from mailboxes hosted with or without Cloudron.
When the mailbox is hosted in Cloudron, you can use the IMAP+SSL at port 993 for receiving Email:
<center>
<img src="/img/osticket-imap.png" class="shadow">
</center>
To send email, use port 587:
<center>
<img src="/img/osticket-smtp.png" class="shadow">
</center>
## User Management
osTicket is integrated with Cloudron user management. However, agents must be manually
added into osTicket before they can login. When adding an agent, choose LDAP as the
authentication backend.
<center>
<img src="/img/osticket-add-agent.png" class="shadow">
</center>
## CLI
osTicket comes with a CLI tool for various administrative tasks like managing users.
Use the [Web Terminal](/apps#web-terminal) to run the following command:
```
sudo -E -u www-data php /app/code/upload/manage.php
```

View File

@ -1,109 +0,0 @@
# <img src="/img/owncloud-logo.png" width="25px"> ownCloud App
## About
ownCloud is a suite of clientserver software for creating and using file hosting services.
* Questions? Ask in the [Cloudron Forum - ownCloud](undefined)
* [ownCloud Website](https://www.owncloud.org)
## Installing ownCloud client on Ubuntu
The ownCloud client on Ubuntu is [outdated](https://bugs.launchpad.net/ubuntu/+source/owncloud-client/+bug/1718308).
The client will display an error:
```
Error downloading https://SERVERNAME/owncloud/remote.php/webdav/ - server replied: Forbidden (Unsupported client version.)".
```
To resolve the problem, install the ownCloud client by following the instructions [here](https://download.owncloud.com/repositories/desktop/download/):
```
sudo wget -nv https://download.owncloud.com/repositories/desktop/Ubuntu_16.04/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo sh -c "echo 'deb http://download.owncloud.com/repositories/desktop/Ubuntu_16.04/ /' > /etc/apt/sources.list.d/owncloud.list"
sudo apt-get update
sudo apt-get install owncloud-client
```
!!! warning
As of this writing, the ownCloud website links to the opensuse website for installing the owncloud client.
The packages in the opensuse website do not work. See the [forum](https://central.owncloud.org/t/repository-bug-on-ubuntu-16-04/9546/7)
and [GitHub issue](https://github.com/owncloud/client/issues/6034) for more information.
## Running occ tool
The `occ` tool can be used for ownCloud [administrative tasks](https://doc.owncloud.org/server/9.0/admin_manual/configuration_server/occ_command.html#using-the-occ-command).
The occ command can be run using the [Web terminal](/apps#web-terminal). For example, to list the users:
```
sudo -u www-data php -f /app/code/occ app:list
```
## Managing deleted files
When you delete a file in ownCloud, it is not [immediately deleted](https://doc.owncloud.org/server/9.0/user_manual/files/deleted_file_management.html) permanently. Instead, it is moved into the trash bin.
It is not permanently deleted until you manually delete it, or when the Deleted Files app deletes it to make room for
new files.
To change permanent deletion policy configure the [trashbin_retention_obligation](https://doc.owncloud.com/server/9.1/admin_manual/configuration_server/config_sample_php_parameters.html?highlight=trashbin_retention_obligation#deleted-items-trash-bin) parameter.
The parameter can be edited using the [Web terminal](/apps#web-terminal) and editing the file
`/app/data/config/config.php`.
## Max upload size
The app is configured to allow maximum uploads of up to 5GB.
## Attaching external storage
Many VPS providers like Digital Ocean, Linode allow attaching external block storage to the server. ownCloud has a feature
that allows mounting additional directories on the server as [external storage](https://doc.owncloud.org/server/9.0/admin_manual/configuration_files/external_storage_configuration_gui.html).
Mounting an existing server directory as 'external storage' on ownCloud is currently not supported.
If the intent is to simply increase the amount of storage available to ownCLoud (since you have run out of disk
space in the default data partition), there are two options:
* Configure ownCloud to use an external object storage like Digital Ocean Spaces, AWS S3 etc.
* Configure Cloudron to store all of ownCloud's data in the external block storage. To achieve this, follow the
[guide](/storage/#moving-a-single-apps-data-directory-to-another-location) for
moving a single app's data directory to another location.
Moving ownCloud's directory entirely has the advantage that the iOS/Android app's Instant Upload feature uses
this new disk.
## Rescan files
ownCloud will not pick up files if they are added directly in the data directory of the user on the server.
To make it rescan, open a [Web terminal](/apps#web-terminal) and run the following command:
```
sudo -u www-data php -f /app/code/occ files:scan <username>
```
To rescan external storage, use the `--path` parameter.
```
sudo -u www-data php -f /app/code/occ files:scan <username> --path=/<username>/files/externaltest
```
## Fixing a broken install
The [ownCloud Marketplace](https://marketplace.owncloud.com/) has a wide variety of apps that can be installed on
top of ownCloud. ownCloud has no native sandboxing mechanism for plugins - if a plugin fails, it will bring
down the whole installation. Plugins might also break an installation after a ownCloud upgrade. For this reason,
we encourage carefully reviewing apps before using them.
To fix a broken installation, open a [Web terminal](/apps#web-terminal) and repair the app. Then run the following
commands:
```
sudo -u www-data php -f /app/code/occ app:list # this lists the apps
sudo -u www-data php -f /app/code/occ app:disable <app> # use this to disable the faulty app
sudo -u www-data php /app/code/occ maintenance:mode --off
```
After running the commands, end the repair for the app to come up.

View File

@ -1,34 +0,0 @@
# <img src="/img/peertube-logo.png" width="25px"> PeerTube App
## About
PeerTube is an activityPub-federated video streaming platform using P2P directly in your web browser.
* Questions? Ask in the [Cloudron Forum - PeerTube](https://forum.cloudron.io/category/91/peertube)
* [PeerTube Website](https://joinpeertube.org/)
* [PeerTube issue tracker](https://github.com/Chocobozzz/PeerTube/issues)
## Customization
Use the [File manager](/apps#file-manager) to edit custom configuration
under `/app/data/production.yaml`.
## CLI
The CLI can be accessed using the `peertube` command.
### Uploading video
```
# peertube up --file /tmp/video.wmv --url https://peertube.cloudron.club --username root --password changeme --video-name "Sample video"
Uploading Sample video video...
Video Sample video uploaded.
```
## Importing video
```
# peertube import --url https://peertube.cloudron.club --username root --password changeme --target-url https://www.youtube.com/watch?v=xxx --tmpdir /tmp
info: Will download and upload 1 videos.
```

View File

@ -1,37 +0,0 @@
# <img src="/img/phabricator-logo.png" width="25px"> Phabricator App
## About
Phabricator is a set of tools that help companies build better software, faster.
* Questions? Ask in the [Cloudron Forum - Phabricator](https://forum.cloudron.io/category/42/phabricator)
* [Phabricator Website](http://phabricator.org/)
## Empower
A registered user can be made an administrator by running the following command in
the [Web Terminal](/apps#web-terminal):
```
# /app/code/phabricator/bin/user empower --user <username>
```
See the phabricator [docs](https://secure.phabricator.com/book/phabricator/article/unlocking/) for
more information.
## Admin recovery
When not using Cloudron authentication, If you accidentally log yourself out before adding an Auth provider, you
must use the CLI tool to recover it (or simply re-install phabricator). See [T8282](https://secure.phabricator.com/T8282) for more information.
```
# /app/code/phabricator/bin/auth recover <admin-username>
```
## Uploading large files
This app is configured to accept files upto 512MB. Note that large files need to be
dragged and dropped (instead of the file upload button).
See [Q216](https://secure.phabricator.com/Q216)

View File

@ -1,27 +0,0 @@
# <img src="/img/phpservermonitor-logo.png" width="25px"> PHP Server Monitor App
## About
PHP Server Monitor is a script that checks whether your websites and servers are up and running.
* Questions? Ask in the [Cloudron Forum - PHP Server Monitor](https://forum.cloudron.io/category/126/php-server-monitor)
* [Website](http://www.phpservermonitor.org/)
* [Issue tracker](https://github.com/phpservermon/phpservermon/issues)
## Check interval
The app is configured to check the status of online servers every 5 minutes and check the status of offline servers every minute.
## Custom config
Custom configuration can be added in `/app/data/config.php` using the [File manager](/apps/#file-manager).
## Public page
To setup a public page (accessed at `/public.php`):
* Set `PSM_PUBLIC` to true in `/app/data/config.php`.
* Create a user named `__PUBLIC__`. Set the Level to `Anonymous`.
* Add servers to user '__PUBLIC__'.
* Go to `/public.php`.

View File

@ -1,46 +0,0 @@
# <img src="/img/pixelfed-logo.png" width="25px"> Pixelfed App
## About
A free and ethical photo sharing platform, powered by ActivityPub federation.
* Questions? Ask in the [Cloudron Forum - Pixelfed](https://forum.cloudron.io/category/90/pixelfed)
* [Pixelfed Website](https://pixelfed.org/)
* [Pixelfed docs](https://docs.pixelfed.org/)
* [Pixelfed issue tracker](https://github.com/pixelfed/pixelfed/issues)
## Admin
To make a register user an admin, use the [Web terminal](/apps#web-terminal) and run
the following command:
```
# sudo -u www-data php artisan user:admin username_here
Found username: girish
Add admin privileges to this user? (yes/no) [no]:
> yes
Successfully changed permissions!
```
Further administration commands like removing a user, removing unused media can be found in
[Pixelfed docs](https://docs.pixelfed.org/running-pixelfed/administration.html#admin-user).
## Federation
To test if federation works, search for a handle like `girish@pixelfed.social`. You should then
be able to follow that handle. Note that you can only see posts that are made _after_ you followed
the handle. Existing posts will **not** appear in you stream.
If following doesn't work:
* Login as an admin user on your Pixelfed instance
* Check `https://pixelfed.domain.com/horizon/failed` for job failures
## Customizations
You can find the configuration file (env.production) under `/app/data`. Don`t forget to restart the app
after making any changes to this file.

View File

@ -1,28 +0,0 @@
# <img src="/img/privatebin-logo.png" width="25px"> PrivateBin App
## About
PrivateBin is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bits AES.
* Questions? Ask in the [Cloudron Forum - PrivateBin](https://forum.cloudron.io/category/54/privatebin)
* [PrivateBin Website](https://privatebin.info/)
* [PrivateBin issue tracker](https://github.com/PrivateBin/PrivateBin/issues)
## Customizations
Various PrivateBin settings can be configured by editing `/app/data/conf.php` using
the [File manager](/apps#file-manager).
## Custom template
You can set a [custom template](https://github.com/PrivateBin/PrivateBin/wiki/Templates)
as follows:
* Create the template in `/app/data/custom_template/custom.php`. The name `custom.php` is
hardcoded in the package.
* Change the template name in `/app/data/conf/conf.php` to be `custom`.
* You can save additional js/css/img in `/app/data/custom_template/` and access them from the
php script as `js/custom/..`, `css/custom/...`, `img/custom/...`.

View File

@ -1,4 +0,0 @@
# <img src="/img/prometheus-logo.png" width="25px"> Prometheus App
Nothing here yet!

View File

@ -1,30 +0,0 @@
# <img src="/img/radicale-logo.png" width="25px"> Radicale App
## About
Radicale is a small but powerful CalDAV (calendars, to-do lists) and CardDAV (contacts) server.
* Questions? Ask in the [Cloudron Forum - Radicale](https://forum.cloudron.io/category/76/radicale)
* [Radicale Website](http://radicale.org/)
* [Radicale issue tracker](https://github.com/Kozea/Radicale/issues)
## Custom permissions (e.g. shared calendar)
Per default, each user can only access their own calendar and contacts. If you
want something more complicated you can change the permissions.
You can change the permissions editing `/app/data/rights` using the [File Manager](/apps/#file-manager)
in the app instance. The default content of that file is:
[owner-write]
user = .+
collection = %(login)s(/.*)?
permission = rw
[read]
user = .*
collection =
permission = r
You can extend the file using the syntax described in [the radicale documentation](http://radicale.org/rights/).

View File

@ -1,83 +0,0 @@
# <img src="/img/rainloop-logo.png" width="25px"> Rainloop App
## About
Rainloop is a simple, modern & fast web-based email client.
* Questions? Ask in the [Cloudron Forum - RainLoop](https://forum.cloudron.io/category/37/rainloop)
* [RainLoop Website](http://www.rainloop.net)
* [RainLoop docs](https://www.rainloop.net/docs/installation/)
* [RainLoop issue tracker](https://github.com/RainLoop/rainloop-webmail/issues)
## Default Setup
Rainloop is pre-configured for use with Cloudron Email. The app automatically
generates domain configuration for all the apps that have email enabled at
_installation_ time. If you enable or disable email on one or more domains,
simply reconfigure the app and it will re-generate the necessary configuration.
## Multi-domain Setup
There are two ways to use Rainloop when using Cloudron Email with multiple
domains.
* Users can login with their email and password to access their mailbox. If the
Cloudron has two domains, `example1.com` and `example2.com`, the user can login
using `user@example1.com` and `user@example2.com`. Aliases can be added as identities
under Rainloop settings.
* Users can login using one of the email domains and add the other domains
using the `Add Account` dialog. For example, user can login as `user@example1.com`
and add `user@example2.com` in the `Add Account` dialog.
!!! note "Multiple accounts"
Rainloop tracks accounts based on the login email. This means
that in the example above, if the user logs in `user@example2.com`, the
`user@example1.com` id will not show up.
## External domains
To add one or more external domains, add them in Rainloop's [admin panel](#admin-panel).
## Vacation Email
An out of office / vacation mail message can be setup using Sieve filters.
A vacation message can be set in `Settings` -> `Filters` -> `Add a filter`. Choose
`Vacation message` action.
<center>
<img src="/img/email-vacation-message-rainloop.png" class="shadow" width="600px">
</center>
!!! note "At most once a day"
Vacation messages are sent at most once a day to the same sender. This setting cannot
be changed.
## Forwarding all emails
To forward all emails to an external mail, setup a Sieve filter in
`Settings` -> `Filters` -> `Add a filter` -> `Forward to`
<center>
<img src="/img/forward-all-emails-rainloop.png" class="shadow" width="600px">
</center>
## Admin panel
The admin panel is located at `/?admin` and is disabled by default.
To enable it, open a [File manager](/apps#file-manager)
and edit the file `/app/data/_data_/_default_/configs/application.ini`.
Set the value of `allow_admin_panel` to `On`. The default admin credentials
are:
Username: admin
Password: 12345
Restart the app for the changes to take effect.
!!! warning "Disable admin panel after use"
We highly recommend disabling the admin panel after use.

View File

@ -1,44 +0,0 @@
# <img src="/img/redash-logo.png" width="25px"> Redash App
## About
Make Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.
* Questions? Ask in the [Cloudron Forum - Redash](https://forum.cloudron.io/category/88/redash)
* [Redash Website](https://redash.io/)
* [Redash forum](https://redash.io/community/)
* [Redash issue tracker](https://github.com/getredash/redash/issues)
## SSH tunnel
If your data source cannot be reached over the internet, you can setup
a [SSH tunnel](https://discuss.redash.io/t/connect-to-mysql-postgres-over-ssh-tunnel/57).
[stunnel](https://www.stunnel.org/index.html) is another way to setup
a TCP tunnel.
## Admin access
The app is pre-setup with a admin account. To give admin access to other
users, login as admin and add users to the `admin` group.
Alternately, use the [Web terminal](/apps#web-terminal) and
run the following command:
```
bin/run ./manage.py users grant_admin <email>
```
## Login form
By default, the app allows user's to login via `Cloudron LDAP` and via
email. Once you have made one or more Cloudron user's as Redash admins,
the email login can be disabled. For this, use the [File manager](/apps#file-manager)
and add/edit a file `/app/data/env` and add the following line:
export REDASH_PASSWORD_LOGIN_ENABLED=false
Restart the app for changes to take effect.
If you want to login as admin again at some point, set the above value
to `true`.

View File

@ -1,78 +0,0 @@
# <img src="/img/redmine-logo.png" width="25px"> Redmine App
## About
Redmine is a flexible project management web application
* Questions? Ask in the [Cloudron Forum - Redmine](https://forum.cloudron.io/category/52/redmine)
* [Redmine Website](https://redmine.org)
* [Redmine forum](https://redmine.org/projects/redmine/boards)
## Installing plugins
To install plugins in redmine, simply extract them to `/app/data/plugins`
and run the db migration.
* Open a [File manager](/apps#file-manager) for the app.
* Upload and extract the plugin to `/app/data/plugins`
* Some plugins require gems to be installed but for some reason do not have
`source 'https://rubygems.org'` at the start of the Gemfile. If it is missing,
add the line to the top of Gemfile. Then in a [Web terminal](/apps#web-terminal):
```
cd /app/data/plugins/redmine_contacts
vi Gemfile # ensure first line is "source 'https://rubygems.org'"
bundle install # this installs gems into /app/data/bundle/vendor
```
* Initialize the database of the plugin
```
# cd /app/code
# bundle exec rake redmine:plugins NAME=redmine_checklists RAILS_ENV=production
```
* Restart redmine using the `restart` button
## Installing themes
To install plugins in redmine, simply extract them to `/app/data/themes`,
install dependancies and run the build script
```
cd /app/data/themes/
git clone https://github.com/hardpixel/minelab.git
cd minelab
bundle install
./bundle.sh
```
## Code repositories
Redmine can integrate various source code management tools like git, cvs, subversion. The repositories
have to be created manually in `/app/data/repos/` and then configured with that path in the project settings.
For further more detailed information for repository integration can be found [here](http://www.redmine.org/projects/redmine/wiki/RedmineRepositories).
## SSH Keys
Redmine is run as the `cloudron` user. To generate SSH keys for this user, open a
[Web Terminal](/apps#web-terminal) and run the following commands:
```
su - cloudron
ssh-keygen # generates keys under ~/.ssh. keys are part of the backup
```
## Custom Cron
Custom cron jobs can be placed in the file `/app/data/cron`.
## Custom Settings
The ruby app settings can be overwritten in the file `/app/data/additional_environment.rb`.
For example to put the app in debug mode, add the following to this file and restart the app:
```
config.log_level = :debug
```

View File

@ -1,17 +0,0 @@
# <img src="/img/releasebell-logo.png" width="25px"> Release Bell App
## About
Release Bell is a self-hosted release notification service.
* Questions? Ask in the [Cloudron Forum - Release Bell](https://forum.cloudron.io/category/55/release-bell)
* [Release Bell Website](https://releasebell.com/)
## Supported Providers
ReleaseBell supports release notification for repos hosted on the following providers:
* GitHub
* GitLab

View File

@ -1,191 +0,0 @@
# <img src="/img/rocketchat-logo.png" width="25px"> Rocket.Chat App
## About
Rocket.Chat is a solution for communities and companies wanting to privately host their own chat service or
for developers looking forward to build and evolve their own chat platforms.
* Questions? Ask in the [Cloudron Forum - Rocket.Chat](https://forum.cloudron.io/category/14/rocket-chat)
* [Rocket.Chat Website](http://rocket.chat/)
* [Rocket.Chat issue tracker](https://github.com/RocketChat/Rocket.Chat/issues)
## Mobile Clients
Rocket.Chat [mobile clients](https://rocket.chat/download) are available for most mobile platforms:
* [Play Store](https://play.google.com/store/apps/details?id=chat.rocket.android)
* [Apple App Store](https://itunes.apple.com/app/rocket-chat/id1148741252)
## Webhook Integrations
Webhook Integrations can be added in the Administration panel under `Integrations`.
Rocket.Chat supports notifications from and to other apps or services through its webhook integrations.
Incoming notifications require a message body parsing code snippet, which transforms the incoming webhook to a readable message,
which will be posted into a selected chat channel.
### GitLab
Create a new `Incoming WebHook Integration` and configure the destination channel and user, then enalbe a custom sript.
GitLab supports multiple types of webhook notifications and thus requires a more sophisticated transform script.
The below works for issue, comment, merge request, push and tag events:
```javascript
/*jshint esnext:true*/
// see https://gitlab.com/help/web_hooks/web_hooks for full json posted by GitLab
const NOTIF_COLOR = '#6498CC';
class Script {
process_incoming_request({
request
}) {
try {
switch (request.headers['x-gitlab-event']) {
case 'Push Hook':
return this.pushEvent(request.content);
case 'Merge Request Hook':
return this.mergeRequestEvents(request.content);
case 'Note Hook':
return this.commentEvent(request.content);
case 'Issue Hook':
return this.issueEvent(request.content);
case 'Tag Push Hook':
return this.tagEvent(request.content);
}
} catch (e) {
console.log('gitlabevent error', e);
return {
error: {
success: false,
message: e.message || e
}
};
}
}
issueEvent(data) {
return {
content: {
username: data.user.name,
text: `${data.user.username} ${data.object_attributes.state} an issue _${data.object_attributes.title}_ on ${data.project.name}. *Description:* ${data.object_attributes.description}. See: ${data.object_attributes.url}`,
icon_url: data.user.avatar_url
}
};
}
commentEvent(data) {
const comment = data.object_attributes;
const user = data.user;
let text;
if (data.merge_request) {
let mr = data.merge_request;
text = `${user.name} commented on Merge Request #${mr.id} [${mr.title}](${comment.url})`;
} else if (data.commit) {
let commit = data.commit;
let message = commit.message.replace(/\n[^\s\S]+/, '...').replace(/\n$/, '');
text = `${user.name} commented on commit [${commit.id.slice(0, 8)} ${message}](${comment.url})`;
} else if (data.issue) {
let issue = data.issue;
text = `${user.name} commented on issue [#${issue.id} ${issue.title}](${comment.url})`;
} else if (data.snippet) {
let snippet = data.snippet;
text = `${user.name} commented on code snippet [#${snippet.id} ${snippet.title}](${comment.url})`;
}
return {
content: {
username: 'gitlab/' + data.project.name,
icon_url: data.project.avatar_url || user.avatar_url || '',
text,
attachments: [{
text: comment.note,
color: NOTIF_COLOR
}]
}
};
}
mergeRequestEvent(data) {
const user = data.user;
const mr = data.object_attributes;
return {
content: {
username: `gitlab/${mr.target.name}`,
icon_url: mr.target.avatar_url || mr.source.avatar_url || user.avatar_url || '',
attachments: [{
title: `${user.name} ${mr.action} Merge Request #${mr.id} ${mr.title}`,
title_link: mr.url,
text: `_${mr.source_branch} into ${mr.target_branch}_`,
color: NOTIF_COLOR
}]
}
};
}
pushEvent(data) {
const project = data.project;
return {
content: {
username: `gitlab/${project.name}`,
text: `![${data.user_name}](${data.user_avatar}) ${data.user_name} pushed ${data.total_commits_count} commits to ${project.name}. See: ${project.web_url}`,
icon_url: project.avatar_url || data.user_avatar || '',
attachments: [{
title: data.total_commits_count + ' Commits',
title_link: project.web_url,
text: data.commits.map((commit) => ` - ${new Date(commit.timestamp).toUTCString()} [${commit.id.slice(0, 8)}](${commit.url}) by ${commit.author.name}: ${commit.message.replace(/\s*$/, '')}`).join('\n'),
color: NOTIF_COLOR
}]
}
};
}
tagEvent(data) {
let tag = data.ref.replace(/^.*?([^\/]+)$/, '$1');
return {
content: {
username: `gitlab/${data.project.name}`,
icon_url: data.project.avatar_url || data.user_avatar || '',
text: `${data.user_name} push tag [${tag} ${data.checkout_sha.slice(0, 8)}](${data.project.web_url}/tags/${tag})`
}
};
}
}
```
After the integration is setup, the Webhook URL and Secret Token is generated and can now be setup with the project in GitLab at `Settings` -> `Integrations`.
!!! warning "Webhook test"
Triggering a test webhook from GitLab will likely result in an error, since the above transform script expects a body, which is not provided from GitLab while running a test call. A test has to be made with a real action on the repo.
## Live Chat
Rocket.Chat has a live chat feature that allows you to embed a chat widget into your website.
Head over to Rocket.Chat app's Administration view, select the Livechat section and enable it. After this, you will find a `Livechat` entry in the side bar.
<center>
<img src="/img/rocketchat-live-chat-4.png" class="shadow" width="30%">
<img src="/img/rocketchat-live-chat-2.png" class="shadow" width="30%">
<img src="/img/rocketchat-live-chat-3.png" class="shadow" width="30%">
</center>
<br/>
*You will also find options to customize the live chat widget appearance to match your look and feel there.*
Then, copy the Javascript code snippet shown in the Livechat Installation view and paste it to the bottom of your website's html code as the last thing before the `</body>` tag. WordPress users can use the [Rocket.Chat LiveChat WordPress plugin](https://wordpress.org/plugins/rocketchat-livechat/) instead.
You will now see the live chat widget on the bottom right of your page.
## Reset Admin Password
If you lost the admin password, you can make an existing user an admin. Use the [Web Terminal](/apps#web-terminal)
to open a MongoDB shell and run the following command:
```
db.users.update({username:'myusername'}, {$set: {'roles' : [ "admin" ]}});
```
## Environment Variables
Custom environment variables can be set in `/app/data/env`.

View File

@ -1,155 +0,0 @@
# <img src="/img/roundcube-logo.png" width="25px"> Roundcube App
## About
Roundcube webmail is a browser-based multilingual IMAP client with an application-like user interface.
* Questions? Ask in the [Cloudron Forum - Roundcube](https://forum.cloudron.io/category/22/roundcube)
* [Roundcube Website](https://roundcube.net)
* [Upstream Roundcube issue tracker](https://github.com/roundcube/roundcubemail/issues)
## Default Setup
Roundcube is pre-configured for use with Cloudron Email.
## Multi-domain Setup
Users can login with their email and password to access their mailbox. If the
Cloudron has two domains, `example1.com` and `example2.com`, the user can login
using `user@example1.com` and `user@example2.com`. Aliases can be added as identities
under Roundcube settings.
## External domains
The roundcube app does not support adding domains that are not managed in Cloudron.
Consider using [Rainloop app](/apps/rainloop) as an alternative.
## Vacation Email
An out of office / vacation mail message can be setup using Sieve filters.
A vacation message can be set in `Settings` -> `Filters` -> `Add filter` -> `Vacation message` action.
<center>
<img src="/img/email-vacation-message-roundcube.png" class="shadow" width="600px">
</center>
## Forwarding all emails
To forward all emails to an external mail, setup a Sieve filter in
`Settings` -> `Filters` -> `Add a filter` -> `Forward to`
<center>
<img src="/img/forward-all-emails-roundcube.png" class="shadow" width="600px">
</center>
## Plugins
[Plugins](https://plugins.roundcube.net/) can be installed as follows:
* Extract the plugin using the [File Manager](/apps#file-manager) into
`/app/data/plugins`.
* Change the ownership of the extracted plugin to `www-data`.
* Add the plugin to `$config['plugins']` in `/app/data/customconfig.php`:
```
array_push($config['plugins'], 'myplugin');
```
* Some plugins have dependencies that need to be installed via `composer`. `composer`
requires a lot of RAM for it's resolution mechanism. For this reason, first bump the
[memory limit](/apps/#memory-limit) of the app to 2GB and then run composer using the
[Web Terminal](/apps/#web-terminal). You can reset back the memory limit after installation
is complete.
```
# cd /app/data/plugins/<plugin>
# composer install --no-dev --optimize
# chown -R www-data:www-data .
```
### Enabling PGP support
The Enigma plugin can be used to enable PGP support. The Enigma plugin is part of the
roundcube code and no installation is required. To enable the plugin:
* Add the following lines to `/app/data/customconfig.php`:
```
array_push($config['plugins'], 'enigma');
$config['enigma_pgp_homedir'] = '/app/data/enigma';
```
* Create the directory where enigma will save the PGP keys on the server:
```
mkdir /app/data/enigma
chown www-data:www-data /app/data/enigma
```
* New PGP keys can be created or existing ones can be imported in `Settings` -> `PGP Keys`
<center>
<img src="/img/roundcube-pgp-settings.png" class="shadow" width="600px">
</center>
* When composing new mail, you will see an Encryption icon in the tool bar.
<center>
<img src="/img/roundcube-encryption-icon.png" class="shadow" width="600px">
</center>
## Changing the title
Add the following lines to `/app/data/customconfig.php` using the [File Manager](/apps/#file-manager):
```
$rcmail_config['product_name'] = 'My Hosting Company';
```
## Skins
[Skins](https://plugins.roundcube.net/explore/) can be installed as follows:
* Extract the skin using the [File Manager](/apps#file-manager) into
`/app/data/skins`.
* Change the ownership of the extracted skin to `www-data`.
* Set the new skin as the default skin by adding this line in `/app/data/customconfig.php`:
```
$rcmail_config['skin'] = 'newskin_directory_name';
```
### Customizing CSS and logo
To customize CSS and logo, it's best to create a copy of an existing skin and make
changes as needed.
* Open a [Web terminal](/apps#web-terminal):
```
# cd /app/data/skins
# cp -Lr larry customskin
... make changes in customskin ...
# chown -R www-data:www-data customskin
```
* Set the new skin as the default skin by adding this line in `/app/data/customconfig.php`:
```
$rcmail_config['skin'] = 'customskin';
```
## Search
By default, the search field only searches the current folder. To search across all folders,
change the `Scope`.
<center>
<img src="/img/roundcube-search.png" class="shadow" width="500px">
</center>

View File

@ -1,11 +0,0 @@
# <img src="/img/scrumblr-logo.png" width="25px"> Scrumblr App
## About
Scrumblr is a collaborative online scrum tool.
* Questions? Ask in the [Cloudron Forum - AllTube](https://forum.cloudron.io/category/115/scrumblr)
* [AllTube Website](http://scrumblr.ca)
* [Scrumblr issue tracker](https://github.com/aliasaria/scrumblr/issues)

View File

@ -1,14 +0,0 @@
# <img src="/img/searx-logo.png" width="25px"> searx App
## About
Searx is a privacy-respecting metasearch engine.
* Questions? Ask in the [Cloudron Forum - Searx](https://forum.cloudron.io/category/47/searx)
* [Searx Website](https://searx.info)
* [Searx issue tracker](https://github.com/searx/searx/issues)
## Custom configuration
Use the [File Manager](/apps#file-manager) to edit `/app/data/settings.yml`.

View File

@ -1,25 +0,0 @@
# <img src="/img/shaarli-logo.png" width="25px"> Shaarli App
## About
The personal, minimalist, super-fast, database free, bookmarking service.
* Questions? Ask in the [Cloudron Forum - Shaarli](https://forum.cloudron.io/category/82/shaarli)
* [Shaarli Website](https://github.com/shaarli/Shaarli)
* [Shaarli Docs](https://shaarli.readthedocs.io/en/master/)
* [Shaarli issue tracker](https://github.com/shaarli/Shaarli/issues)
## Browser Extensions
Shaarli's browser extensions currently [do not work](https://chrome.google.com/webstore/detail/shiny-shaarli/hajdfkmbdmadjmmpkkbbcnllepomekin/support) on Cloudron because Cloudron sets the `X-Frame-Options` as
a security measure. A future version of Cloudron might support disabling
this security measure.
## Using the bookmarklet
* Open your Shaarli and Login
* Click the Tools button in the top bar
* Drag the `✚Shaare link` button, and drop it to your browser's bookmarks bar.
You can read more about setting up the bookmarklet in the [Shaarli docs](https://shaarli.readthedocs.io/en/master/Bookmarklet/)

View File

@ -1,17 +0,0 @@
# <img src="/img/sickchill-logo.png" width="25px"> SickChill App
## About
SickChill is an automatic Video Library Manager for TV Shows.
* Questions? Ask in the [Cloudron Forum - SickChill](https://forum.cloudron.io/category/117/sickchill)
* [SickChill Website](https://sickchill.github.io/)
* [SickChill issue tracker](https://github.com/SickChill/SickChill/issues)
### Configuration
You will have to enable NZB/Torrent providers. You may also want to enable post-processing.
Do *not* enable "Reverse proxy headers" : SickChill will block you from connecting, because it will believe that you are
connecting from a remote address with no passwords, as it does not see Cloudron's authentication wall.

View File

@ -1,20 +0,0 @@
# <img src="/img/simple-torrent-logo.png" width="25px"> Simple Torrent App
## About
Simple Torrent is a self-hosted remote torrent client (rebranded from Cloud Torrent).
* Questions? Ask in the [Cloudron Forum - Simple Torrent](https://forum.cloudron.io/category/73/simple-torrent)
* [Simple Torrent Website](https://github.com/boypt/simple-torrent)
* [Simple Torrent issue tracker](https://github.com/boypt/simple-torrent/issues)
## Customization
Use the [File Manager](/apps#file-manager) and edit `cloud-torrent.yaml` for customization.
See the [docs](https://github.com/boypt/simple-torrent/wiki/Config-File) on what can be customized.
Some important fields are:
* `downloaddirectory` - where the download files are placed.
* `donecmd` - a script to run once file has downloaded. See [DoneCmdUsage](https://github.com/boypt/simple-torrent/wiki/DoneCmdUsage)
for more information.

View File

@ -1,14 +0,0 @@
# <img src="/img/snipe-it-logo.png" width="25px"> Snipe-IT App
## Customization
Use the [Web terminal](/apps#web-terminal) to edit custom configuration
under `/app/data/env`.
## Full Company Support
[Full Multiple Companies Support](https://snipe-it.readme.io/docs/general-settings#full-multiple-companies-support)
lets you set up Snipe-IT as a multi-tenant application. This features allows super-admins
to restrict the assets non-super-admins can see. This feature is disabled by default but
can be enabled from the General Settings page.

View File

@ -1,109 +0,0 @@
# <img src="/img/sogo-logo.png" width="25px"> SOGo App
## About
SOGo is a fully supported and trusted groupware server with a focus on scalability and open standards.
* Questions? Ask in the [Cloudron Forum - SOGo](https://forum.cloudron.io/category/58/sogo)
* [SOGo Website](http://www.sogo.nu/)
* [SOGo support](https://sogo.nu/support.html)
* [SOGo docs](https://sogo.nu/support.html#/documentation)
* [SOGo issue tracker](https://sogo.nu/support.html#/bugs)
## Login
SOGo only works with mailbox accounts on the Cloudron. Login using the full email address including the domain as the username.
## Email
SOGo is setup out of the box as an email client for Cloudron for all mailboxes on the Cloudron.
By default the full name for sending out emails is currently prefilled with the email address.
Adjusting this to the real name, can be done by editing the IMAP account under `Preferences` -> `Mail`:
<center>
<img src="/img/sogo-email-identity-setup.png" class="shadow" width="100%">
</center>
## External domains
The SOGo app does not support adding domains that are not managed in Cloudron.
Consider using the [rainloop app](/apps/rainloop) as an alternative.
### Sieve Scripts
SOGo UI only supports setting up a limited set of filtering rules. You can setup more advanced rules
using the Rainloop or Roundcube app.
## CalDAV
SOGo supports syncing using CalDAV:
Clicking on the 'ribbon' next to the calendar shows a popup menu.
<center>
<img src="/img/sogo-links-to-calendar.png" class="shadow" width="50%">
</center>
Clicking on `Links to this Calendar` will show the calendar settings for various clients.
<center>
<img src="/img/sogo-calendar-links.png" class="shadow" width="50%">
</center>
!!! note "Calendar URLs"
CalDAV URL - https://sogo.example.com/SOGo/dav/<username>/Calendar/personal/
<br>
Wedav ICS URL - https://sogo.example.com/SOGo/dav/<username>/Calendar/personal.ics
<br>
WebDAV XML URL - https://sogo.example.com/SOGo/dav/<username>/Calendar/personal.xml
## CardDAV
Clicking on the 'ribbon' next to the address book shows a popup menu.
<center>
<img src="/img/sogo-links-to-address-book.png" class="shadow" width="50%">
</center>
Clicking on `Links to this Address book` will show the address book settings for various clients.
<center>
<img src="/img/sogo-address-book-links.png" class="shadow" width="50%">
</center>
!!! note "Address book URLs"
CardDAV URL - https://sogo.example.com/SOGo/dav/<username>/Contacts/personal/
## ActiveSync
Exchange ActiveSync is a protocol used by Microsoft Exchange to sync mobile devices.
The Cloudron SOGo app does not support ActiveSync. It only supports clients that
use IMAP/SMTP/CardDAV/CalDAV.
## UI Issues
SOGo behaves differently depending on how you access the app.
If you navigate to SOGo by clicking on the icon on your Cloudron
dashboard, parts of the SOGo UI [do not work](https://sogo.nu/bugs/view.php?id=3900).
This issue manifests itself as:
* Email delete button not working
* Compose email popup not closing. Sometimes, it ends up closing the tab itself.
* The browser's web inspector console displays a DOMException with the message
`"Permission denied to access property \"$mailboxController\" on cross-origin object"`.
To workaround this, always use SOGo by opening a new browser tab and entering the
SOGo domain name directly.
## CalDAV and CardDAV Migration
Follow [this guide](https://blog.cloudron.io/carddav-and-caldav-migration/)
to migrate CardDAV and CalDAV resources to and from existing installations.
## Mark as spam
To mark emails as spam (or ham), click on the gravatar icon in the email header.
Then, there is a thumbs down icon for marking as spam.

View File

@ -1,16 +0,0 @@
# <img src="/img/statping-logo.png" width="25px"> Statping App
## About
Statping is a status Page for monitoring your websites and applications with beautiful graphs, analytics, and plugins.
* Questions? Ask in the [Cloudron Forum - Statping](https://forum.cloudron.io/category/92/statping)
* [Statping Website](https://statping.com/)
* [Statping issue tracker](https://github.com/statping/statping/issues)
## Config changes
Sometimes after making config or setting changes, the graphs do not appear.
To fix this, go to admin settings and clear the cache after doing any config or setting
changes.

View File

@ -1,94 +0,0 @@
# <img src="/img/surfer-logo.png" width="25px"> Surfer App
## About
Surfer comes with a webinterface to manage and upload files, a command line tool as well as providing a [WebDAV](https://en.wikipedia.org/wiki/WebDAV) endpoint to manage files in your local file manager.
* Questions? Ask in the [Cloudron Forum - Surfer](https://forum.cloudron.io/category/28/surfer)
* [Surfer Website](https://git.cloudron.io/cloudron/surfer)
## Admin page
The web interface is available under the `https://[appdomain]/_admin/` location.
## CLI tool
Install the surfer cli tool using npm.
```
npm -g install cloudron-surfer
```
Login using your Cloudron credentials:
```
surfer login <this app's domain>
```
Put some files:
```
surfer put index.html favicon.ico /
```
Put a directory (the `/.` below meand that the contents of `build` dir get copied into the root of surfer.
Without it, a `build` directory will get created in the root of surfer).
```
surfer put build/. /
```
## CI/CD integration
You can setup your CI/CD to automatically push static files to surfer as follows:
* First, create an `Access Token` in surfer.
* Install the surfer cli tool as part of the CI/CD pipeline
* Push the artifacts (`dist/` in the example below):
```
surfer put --token api-7e6d90ff-5825-4ebe-a85b-a68795055955 --server surfer.cloudron.ml dist/. /
```
## WebDAV
WebDAV is a well supported extension of the Hypertext Transfer Protocol that allows clients to perform remote Web content authoring operations. WebDAV shares can be mounted usually with your local file manager.
The URI schemes differ on the common platforms:
| Platform| URI |
| --- | --- |
| Windows | https://[appdomain]/_webdav/ |
| Mac | https://[appdomain]/_webdav/ |
| Gnome | davs://[appdomain]/_webdav/ |
| KDE | webdavs://[appdomain]/_webdav/ |
On Linux the [Davfs2](http://savannah.nongnu.org/projects/davfs2) library can also be used to locally mount a share:
```
mount -t davfs https://[appdomain]/_webdav/ /mount/point
```
## CLI Usage
```
$ surfer
Usage: surfer [options] [command]
Options:
-V, --version output the version number
-s, --server <url> Server URL (optional)
-t, --token <access token> Server Access Token (optional)
-h, --help display help for command
Commands:
login [options] <url> Login to server
logout Logout from server
put [options] <file|dir...> Puts a list of files or dirs to the destination. The last argument is destination dir
get [file|dir] Get a file or directory listing
del [options] <file> Delete a file or directory
help [command] display help for comman
```

View File

@ -1,74 +0,0 @@
# <img src="/img/synapse-logo.png" width="25px"> Synapse App
## About
Matrix is an open network for secure, decentralized communication.
* Questions? Ask in the [Cloudron Forum - Matrix Synapse](https://forum.cloudron.io/category/50/matrix-synapse-riot)
* [Matrix Synapse Website](https://matrix.org)
* [Matrix Synapse issue tracker](https://github.com/matrix-org/synapse/issues)
## Post installation
### Step 1: Select Matrix IDs
Just like email, users on matrix has a unique universal id. These ids are
of the form `@username:domain.com`.
To give users a "memorable id", this app (also known as home server) is pre-setup to use the second level
domain for the domain part of the id (also known as the `server_name`). For example,
if you installed the app at `matrix-homeserver.example.com`, this app package will set the
`server_name` to `example.com`. This will generate user ids of the form `@username:example.com`.
If you require a different server name, use a [File Manager](/apps#file-manager)
to edit `/app/data/configs/homeserver.yaml` and restart the app.
### Step 2: Delegation
Matrix clients and other matrix servers discover the Matrix server for an ID using
[Well-Known](https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml) URIs.
The Well-Known URI is a document that is served up from the `server_name` domain (i.e `example.com`)
that [delegates](https://github.com/matrix-org/synapse/blob/master/docs/delegate.md) the handling
to another server (i.e `matrix-homeserver.example.com`).
If `server_name` is an app hosted on Cloudron, you can use Cloudron's Well Known URI
support to serve up well-known documents. Go to the `Domains` view and set the Matrix domain in the `Advanced` settings:
<center>
<img src="/img/synapse-wellknown.png" class="shadow">
</center>
Be sure to provide both the hostname and port number (443). To verify the delegation setup, try this command
from your laptop/PC:
```
$ curl https://example.com/.well-known/matrix/server
{ "m.server": "matrix-homeserver.example.com:443" }
```
### Step 3. Federation
[Federation setup](https://github.com/matrix-org/synapse/blob/master/docs/federate.md) is automatic.
Use the [Federation Tester](https://federationtester.matrix.org/) to verify that everything is setup properly.
Note you must enter the `server_name` (like `example.com`) in the form field in the website and NOT the location
of your home server (despite what the form says).
## Admin
To make an existing user an admin, open a [Web terminal](/apps#web-terminal) and
run the following command:
```
PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -c "UPDATE users SET admin=1 WHERE name='@user:example.com'"
```
## Customizations
Synapse offers a variety of [customizations](https://github.com/matrix-org/synapse/blob/develop/docs/sample_config.yaml).
To make changes, use a [File Manager](/apps#file-manager)
to edit `/app/data/configs/homeserver.yaml` and restart the app.
## Home page
The `index.html` can be customized by editing `/app/data/index.html`. Note that any assets have to be embedded inline.

View File

@ -1,18 +0,0 @@
# <img src="/img/syncthing-logo.png" width="25px"> Syncthing App
## About
Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes.
* Questions? Ask in the [Cloudron Forum - Syncthing](https://forum.cloudron.io/category/56/syncthing)
* [Syncthing Website](https://syncthing.net)
* [Syncthing forum](https://forum.syncthing.net/)
* [Syncthing docs](https://docs.syncthing.net/)
* [Syncthing issue tracker](https://github.com/syncthing/syncthing/issues)
## Apps
Complete list of native GUIs and integrations is available [here](https://syncthing.net/).
* [Android app](https://play.google.com/store/apps/details?id=com.nutomic.syncthingandroid)

View File

@ -1,97 +0,0 @@
# <img src="/img/taiga-logo.png" width="25px"> Taiga App
## About
Taiga is the project management tool for multi-functional agile teams.
* Questions? Ask in the [Cloudron Forum - Taiga](https://forum.cloudron.io/category/65/taiga)
* [Taiga Website](https://taiga.io)
* [Taiga issue tracker](https://github.com/taigaio/taiga-front/issues)
## Custom configuration
Taiga customizations are placed in two files:
* `conf.json` - This contains [UI settings](https://github.com/taigaio/taiga-front/blob/master/conf/conf.example.json). On the Cloudron app, this file is
located at `/app/data/conf.json`.
* `local.py` - This contains [backend settings](https://github.com/taigaio/taiga-back/blob/master/settings/local.py.example). On the Cloudron app, this file
is located at `/app/data/customlocal.py`.
These customizations will persist across updates and restarts.
To edit these files use the [File manager](/apps#file-manager).
## Disabling external registration
When using Cloudron auth, external registration is already disabled. When now
using Cloudron auth, edit the following files using [File manager](/apps#file-manager).
* `PUBLIC_REGISTER_ENABLED = False` in `/app/data/customlocal.py`
* `"publicRegisterEnabled": false` in `/app/data/conf.json`
## Importing a project
An existing project's json can be imported into Taiga as follows:
* Connect to taiga using the [Web terminal](/apps#web-terminal)
* Upload the project.json using the 'Upload to /tmp' button
* `su cloudron`
* `source /app/code/taiga/bin/activate`
* `cd /app/code/taiga-back`
* `python manage.py load_dump /tmp/project.json email@domain.tld`
### Asana
To import projects from Asana:
* Create an [Asana Connect](https://asana.com/guide/help/api/api#gl-connect) client and secret. The redirect URL must be set to `https://taiga.example.com/project/new/import/asana`
* Edit the backend config at `/app/data/customlocal.py` to contain the key:
```
IMPORTERS["asana"] = {
"active": True, # Enable or disable the importer
"callback_url": "{}://{}/project/new/import/asana".format(SITES["front"]["scheme"],
SITES["front"]["domain"]),
"app_id": "client id from above",
"app_secret": "client secret from above"
}
```
* Edit `/app/data/conf.json`:
```
"importers": [
"asana"
]
```
* Restart the app
## Plugins
### Slack
The `slack` plugin is installed but not enabled. To enable it, add the following line to `/app/data/customlocal.py`:
```
INSTALLED_APPS += ["taiga_contrib_slack"]
```
Enable the frontend of Slack plugin by editing `/app/data/conf.json`:
```
"contribPlugins": [ "/plugins/slack/slack.json" ]
```
Then, initialize the database by running the following command in the [web terminal](/apps#web-terminal):
```
source /app/code/taiga/bin/activate
cd /app/code/taiga-back
python manage.py migrate taiga_contrib_slack
```
Be sure to restart the app for the changes to take effect.

View File

@ -1,23 +0,0 @@
# <img src="/img/teamspeak-logo.png" height="32px" style="vertical-align: middle;"> TeamSpeak App
## About
Use crystal clear sound to communicate with your team mates cross-platform with military-grade security, lag-free performance & unparalleled reliability and uptime.
* Questions? Ask in the [Cloudron Forum - Teamspeak Server](https://forum.cloudron.io/category/84/teamspeak)
* [Teamspeak Server Website](https://www.teamspeak.com)
* [Teamspeak Server forum](https://community.teamspeak.com/)
## Initial Setup
After installation, check the app logs (in the `Console` section) to get the admin server token. You can now connect
using one of the [Teamspeak client](https://www.teamspeak.com/en/downloads/).
On first time connect, the client with ask for a privilege key. This is the same as the admin server token.
<img src="/img/teamspeak-privilege-key.png" class="shadow">
## License
To configure a Teamspeak license in an app instance, upload the license `.dat` file to `/app/data/licensekey.dat` using the web terminal or Cloudron cli tool, then restart the app from the dashboard.

View File

@ -1,55 +0,0 @@
# <img src="/img/thelounge-logo.png" width="25px"> The Lounge App
## About
The Lounge is a self-hosted web IRC client.
* Questions? Ask in the [Cloudron Forum - The Lounge](https://forum.cloudron.io/category/67/the-lounge)
* [The Lounge Website](https://thelounge.chat/)
* [The Lounge community](https://thelounge.chat/community)
* [The Lounge issue tracker](https://github.com/thelounge/thelounge/issues)
## User management
When installed with Cloudron SSO enabled, add and remove users in the Cloudron
admin page.
When installed without Cloudron SSO enabled, new users must be added using
the Lounge CLI tools.
* Open a [Web terminal](/apps#web-terminal) for the app.
* Use the [lounge CLI](https://thelounge.github.io/docs/server/users.html) command
to add a user:
```
root@3543a0255d97:/home/cloudron# thelounge add girish
2017-10-28 05:21:59 [PROMPT] Enter password:
2017-10-28 05:22:02 [PROMPT] Save logs to disk? (yes)
2017-10-28 05:22:04 [INFO] User girish created.
2017-10-28 05:22:04 [INFO] User file located at /app/data/users/girish.json.
```
* To remove a user:
```
root@3543a0255d97:/home/cloudron# thelounge remove girish
2017-10-28 05:22:21 [INFO] User girish removed.
```
!!! warning "Default admin user"
With SSO disabled, the Cloudron app creates a default user named 'admin'
for convenience. Be sure to change the password in the Lounge setting's
page. If you do not intend to use this user, you can delete this user.
## Installing themes
[Lounge themes](https://thelounge.github.io/docs/plugins/themes.html) can be
installed using the lounge CLI tool.
* First, look for a theme at [npm](https://www.npmjs.com/search?q=keywords%3Athelounge-theme)
* Open a [Web terminal](/apps#web-terminal) for the app.
* Run command `thelounge install thelounge-theme-custom`
* Restart the app
* Select theme in options

View File

@ -1,54 +0,0 @@
# <img src="/img/tinytinyrss-logo.png" width="25px"> Tiny Tiny RSS
## About
Tiny Tiny RSS is a free and open source web-based news feed (RSS/Atom) reader and aggregator
* Questions? Ask in the [Cloudron Forum - Tiny Tiny RSS](https://forum.cloudron.io/category/21/tiny-tiny-rss)
* [Tiny Tiny RSS Website](http://tt-rss.org)
* [Tiny Tiny RSS forum](https://community.tt-rss.org/)
## Customizing configuration
Use the [File Manager](/apps#file-manager) to place custom configuration under `/app/data/config.php`.
Please be careful when changing configuration since the Cloudron packaging might depend on it.
## Installing Plugins
To install [plugins](https://git.tt-rss.org/fox/tt-rss/wiki/Plugins), simply extract
them to `/app/data/plugins` (system plugins) or `/app/data/plugins.local` (user plugins) and restart the app.
The [File Manager](/apps#file-manager) can be used to upload and extract plugins.
You can see list of plugins [here](https://git.tt-rss.org/git/tt-rss/wiki/Plugins)
## Installing themes
To install [themes](https://git.tt-rss.org/fox/tt-rss/wiki/Themes), simply extract them to `/app/data/themes` (system themes)
or `/app/data/themes.local` (user themes) and restart the app.
The [File Manager](/apps#file-manager) can be used to upload and extract themes.
Some suggested [themes](https://git.tt-rss.org/git/tt-rss/wiki/Themes):
* [Reeder](https://github.com/tschinz/tt-rss_reeder_theme)
* [Clean GReader](https://github.com/naeramarth7/clean-greader)
* [Feedly](https://github.com/levito/tt-rss-feedly-theme)
## Fever support
TinyTinyRSS supports Fever API using a plugin. There are many version of
fever API floating around but [this version](https://github.com/wodev/tinytinyrss-fever-plugin#installation)
is known to work.
Instruction on how to setup the apps is in the [old forum page](https://tt-rss.org/oldforum/viewtopic.php?f=22&t=1981)
## External registration
To enable external registration, make two changes to `/app/data/config.php` using the [File Manager](/apps#file-manager):
* Set `ENABLE_REGISTRATION` to `true`
* Edit the `PLUGINS` variable to include `auth_internal`. Note that `PLUGINS` is comma separated plugin names.
This enables auth via the internal database authentication in addition to LDAP that Cloudron setup.

View File

@ -1,31 +0,0 @@
# <img src="/img/transmission-logo.png" style="height: 48px; vertical-align: middle;"> Transmission App
## About
Transmission is a fast, easy and free BitTorrent client.
* Questions? Ask in the [Cloudron Forum - Transmission](https://forum.cloudron.io/category/114/transmission)
* [Transmission Website](https://transmissionbt.com/)
* [Transmission forum](https://forum.transmissionbt.com/index.php)
* [Transmission issue tracker](https://github.com/transmission/transmission/issues)
## Paths
By default, this app is configured to, at the end of a download, automatically hard-link the downloaded files from
`/app/data/files/Downloading/` to `/app/data/files/Downloaded/`. This allows potential post-processing by other apps of
the file in `Downloaded`, without interfering with seeding from the file in `Downloading`.
The paths above can be [changed](#custom-config).
## Custom config
Custom configuration can be edited in `/app/data/transmission-config/modifiable.settings.json` using the
[File Manager](/apps/$#file-manager). Be sure to restart the app after making changes.
See [transmission docs](https://github.com/transmission/transmission/wiki/Editing-Configuration-Files) for
a full list of configurable options.
!!! warning "Do not edit settings.json"
There is a file named `settings.json`. This gets overwritten on startup. Instead, place settings only
in `modifiable.settings.json`.

Some files were not shown because too many files have changed in this diff Show More