Coder Social home page Coder Social logo

ansible-role-owncloud's Introduction

Ansible Role: owncloud

An Ansible role that installs nextCloud or ownCloud on Fedora using nginx.

Requirements

For this role nginx and php have to be installed beforehand. To achieve this the following roles can be used:

  • mjanser.nginx
  • mjanser.php

If you want to MySQL or MariaDB as database, they also have to be installed first. You can use the role mjanser.mysql for that.

The installation of nextCloud and ownCloud needs to be run as the webserver user which can be an issue if you run Ansible as an unprivileged user. See Ansible documentation for more information. If you run Ansible as an unprivileged user the simplest solution is adding the following lines to you ansible.cfg:

[ssh_connection]
pipelining = True

Role Variables

Available variables are listed below, along with default values:

owncloud_vendor: nextcloud

owncloud_server_name: example.com

owncloud_admin_username: admin
owncloud_admin_password: secret

owncloud_config_user_backend: ~ # imap, smb, ftp
owncloud_config_user_backend_argument: ~

owncloud_config_trusted_domains: ["localhost", "example.com"]
owncloud_config_cli_url: "https://example.com"
owncloud_config_mail_domain: "example.com"
owncloud_config_defaultapp: ~
owncloud_config_filesystem_check: 1
owncloud_config_loglevel: 2
owncloud_config_mysql_utf8mb4: no

owncloud_apps: []
#  - name: news
#    enabled: true

owncloud_version: ~ # nextCloud: 12.0.1, ownCloud: 10.0.2

owncloud_data_directory: /var/lib/owncloud/data

#owncloud_ssl_certificate: "/etc/pki/tls/certs/{{ owncloud_server_name }}.crt"
#owncloud_ssl_certificate_key: "/etc/pki/tls/private/{{ owncloud_server_name }}.key"

owncloud_database_server: mysql # mysql, sqlite, manual
owncloud_database_name: "{{ owncloud_vendor }}"
owncloud_database_username: "{{ owncloud_vendor }}"
owncloud_database_password: secret

owncloud_restore_database: ~

Vendor

With the variable owncloud_vendor you can define whether to install nextCloud or ownCloud.

Server name

The variable owncloud_server_name defines the hostname which will be configured in the nginx configuration. Make sure the server is accessable from the network with this name.

Admin user

During the installation an admin user will be created. With the variables owncloud_admin_username and owncloud_admin_password you can define the credentials for it. This user can be changed or even removed later.

User backend

If you want to use a different user backend than the internal one, you can configure it with the variables owncloud_config_user_backend and owncloud_config_user_backend_argument. Please look at the corresponding documentation for more details.

Configuration

The variables prefixed with owncloud_config_ can be used to change some configuration parameters. Please look at the corresponding documentation for more details.

Apps

Apps can be enabled or disabled using the variable owncloud_apps. Be aware that those apps have to installed, this ansible role doesn't install any apps.

Version

With the variable owncloud_version you can define a specific version of nextCloud or ownCloud to install. It defaults to the respective latest stable version.

Data directory

The variable owncloud_data_directory defines the directory on the filesystem where the data will be stored.

SSL

The nginx vhost is always configured to be encrypted. By default the certificate and key are taken from /etc/pki/tls/certs/{{ owncloud_server_name }}.crt and /etc/pki/tls/private/{{ owncloud_server_name }}.key. You can override those paths with the variables owncloud_ssl_certificate and owncloud_ssl_certificate_key.

Database

The database connection can be configured with the variables prefixed by owncloud_database_. The role currently supports mysql and sqlite.

If you specify a path to a SQL file in the variable owncloud_restore_database, it will be imported when the database is created. This only works with MySQL/MariaDB.

Dependencies

None

Example Playbook

- hosts: all
  roles:
    - { role: mjanser.owncloud }
  vars:
    owncloud_ssl_certificate_key: "/etc/pki/tls/certs/example.com.crt"
    owncloud_config_defaultapp: "gallery,files"
    owncloud_config_trusted_domains: ["localhost", "example.com"]
    owncloud_apps:
      - name: files_external

Configuration

The configuration files are located in /etc/nextcloud or /etc/owncloud. The default config.php is managed by nextCloud or ownCloud itself and can be changed manually or by using the cloud tools. The file custom.config.php is managed by this ansible role and should not be changed manually.

You can also create your own configuration file in /etc/nextcloud or /etc/owncloud which overrides parameters from the other files.

License

MIT

ansible-role-owncloud's People

Contributors

mjanser avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.