summaryrefslogtreecommitdiffhomepage
path: root/public/v4/apps/nextcloud.yml
blob: b2986d353f118c3cc3794c6f4ce1fc48523f80ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
captainVersion: 4
services:
    $$cap_appname-db:
        documentation: Taken from https://hub.docker.com/_/mariadb
        image: mariadb:$$cap_mariadb_version
        volumes:
            - $$cap_appname-db-data:/var/lib/mysql
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: $$cap_db_pass
            MYSQL_DATABASE: nextcloud
            MYSQL_USER: $$cap_db_user
            MYSQL_PASSWORD: $$cap_db_pass
        caproverExtra:
            notExposeAsWebApp: 'true'
    $$cap_appname-redis:
        documentation: Taken from https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb-cron-redis/apache/docker-compose.yml
        image: redis:$$cap_redis_version
        restart: always
        caproverExtra:
            notExposeAsWebApp: 'true'
    $$cap_appname:
        depends_on:
            - $$cap_appname-db
            - $$cap_appname-redis
        documentation: Taken from https://hub.docker.com/_/nextcloud
        image: nextcloud:$$cap_nextcloud_version
        volumes:
            - $$cap_appname-data:/var/www/html
        restart: always
        environment:
            OVERWRITEPROTOCOL: $$cap_http_https_cors
            MYSQL_DATABASE: nextcloud
            MYSQL_USER: $$cap_db_user
            MYSQL_PASSWORD: $$cap_db_pass
            MYSQL_HOST: srv-captain--$$cap_appname-db
            REDIS_HOST: srv-captain--$$cap_appname-redis
            NEXTCLOUD_ADMIN_USER: $$cap_admin_user
            NEXTCLOUD_ADMIN_PASSWORD: $$cap_admin_pass
            NEXTCLOUD_TRUSTED_DOMAINS: $$cap_appname.$$cap_root_domain $$cap_hostnames
    $$cap_appname-cron:
        depends_on:
            - $$cap_appname-db
            - $$cap_appname-redis
            - $$cap_appname
        documentation: https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb-cron-redis/apache/docker-compose.yml
        restart: always
        volumes:
            - $$cap_appname-data:/var/www/html
        caproverExtra:
            dockerfileLines:
                - FROM nextcloud:$$cap_nextcloud_version
                - 'ENTRYPOINT [ "/cron.sh" ] '
            notExposeAsWebApp: 'true'
caproverOneClickApp:
    variables:
        - id: $$cap_nextcloud_version
          label: NextCloud Version
          defaultValue: 25.0.6
          description: >-
              Check out their Docker page for the valid tags https://hub.docker.com/_/nextcloud?tab=tags


              Do not use fpm versions.
          validRegex: /^((?!fpm)\S)+$/
        - id: $$cap_redis_version
          label: Redis Version
          defaultValue: 6.2.12
          description: Check out their Docker page for the valid tags https://hub.docker.com/_/redis?tab=tags
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_mariadb_version
          label: MariaDB (database) version
          defaultValue: 10.6.12
          description: Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_db_user
          label: database user
          defaultValue: nextcloud
          description: Username for the database using mysql.
          validRegex: /^([a-zA-Z0-9])+$/
        - id: $$cap_db_pass
          label: database password
          defaultValue: $$cap_gen_random_hex(32)
          description: Password for the database user and root using mysql.
          validRegex: /.{1,}/
        - id: $$cap_admin_user
          label: admin name
          defaultValue: admin
          description: Name of the Nextcloud admin user.
          validRegex: /^([a-zA-Z0-9\@\.])+$/
        - id: $$cap_admin_pass
          label: admin password
          description: Password for the Nextcloud admin user.
          validRegex: /.{8,}/
        - id: $$cap_http_https_cors
          label: Protocol of proxy
          defaultValue: https
          description: Choose either http or https. cors configuration to login are set by the docker image, if you do not set this same as your proxy configuration, login will fail
          validRegex: /^http[s]?$/
        - id: $$cap_hostnames
          label: hostnames
          description: Add all your additional hostnames where nextcloud will be exposed separated by space char. After first run, this variables are not reloaded by nextcloud and you will have to change the configuration according to the nextcloud's documentation.
    instructions:
        start: A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. http://Nextcloud.com
        end: >-
            NextCloud is deployed and will be available on few minutes as $$cap_appname.

            If you set the cors sections to https, please enable https on your app. If you do not activate it you will have an error.


            For better performances and compliance, click on "edit default nginx configuration" button then
            below "proxy_set_header X-Forwarded-Proto $scheme;"
            add "add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;"  into the nginx configuration.

            You can see HSTS parts of the nextcloud security documentation https://docs.nextcloud.com/server/21/admin_manual/installation/harden_server.html for further informations


            You can also scan your nextcloud instance on https://scan.nextcloud.com/
    displayName: nextcloud
    isOfficial: true
    description: Nextcloud is a suite of client-server software for creating and using file hosting services
    documentation: Taken from https://hub.docker.com/_/nextcloud