├── LICENSE ├── README.md ├── caddy ├── conf │ ├── Caddyfile │ └── init │ │ └── systemd └── pkg.con ├── dppm ├── conf │ └── config.con └── pkg.con ├── drawio └── pkg.con ├── etherpad ├── conf │ └── config.json └── pkg.con ├── filebrowser ├── conf │ └── config.json └── pkg.con ├── git └── pkg.con ├── gitea ├── conf │ ├── config.ini │ └── init │ │ └── systemd └── pkg.con ├── minetest ├── conf │ └── config.ini └── pkg.con ├── nextcloud ├── conf │ └── config.json ├── pkg.con └── site │ └── caddy ├── nodejs └── pkg.con ├── php ├── conf │ └── config.ini └── pkg.con ├── riot-web └── pkg.con ├── selfoss ├── conf │ └── config.ini ├── pkg.con └── site │ └── caddy ├── tidb ├── conf │ └── config.toml └── pkg.con ├── transmission ├── conf │ └── config.json └── pkg.con └── wordpress ├── conf └── config.yml ├── pkg.con └── site └── caddy /LICENSE: -------------------------------------------------------------------------------- 1 | ISC License 2 | 3 | Copyright (c) 2018-2020 Julien Reichardt 4 | 5 | Permission to use, copy, modify, and distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DPPM package sources 2 | 3 | This sources is used to build [dppm](https://github.com/DFabric/dppm) packages. 4 | 5 | Each package has all its informations needed in their [CON-serialized](https://github.com/j8r/con) `pkg.con` configuration file. 6 | 7 | ## Package format 8 | 9 | Each `pkg.con` file follows the [CON format specification](https://github.com/j8r/con/blob/master/SPEC.md), and extra configurations files may be present in their `conf` directory. 10 | 11 | ## License 12 | 13 | Copyright (c) 2018-2020 Julien Reichardt - ISC License 14 | -------------------------------------------------------------------------------- /caddy/conf/Caddyfile: -------------------------------------------------------------------------------- 1 | import sites/* 2 | -------------------------------------------------------------------------------- /caddy/conf/init/systemd: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Wants=network-online.target systemd-networkd-wait-online.service 3 | 4 | [Service] 5 | Restart=on-abnormal 6 | 7 | ; Use graceful shutdown with a reasonable timeout 8 | KillMode=mixed 9 | KillSignal=SIGQUIT 10 | TimeoutStopSec=5s 11 | 12 | ; Limit the number of file descriptors; see `man systemd.exec` for more limit settings. 13 | LimitNOFILE=1048576 14 | -------------------------------------------------------------------------------- /caddy/pkg.con: -------------------------------------------------------------------------------- 1 | package "caddy" 2 | name "Caddy" 3 | type "HTTP" 4 | license "Apache-2.0" 5 | url "https://caddyserver.com" 6 | docs "https://caddyserver.com/docs" 7 | description "Fast, cross-platform HTTP/2 web server with automatic HTTPS" 8 | info "Includes auto SSL/TLS certificates with Let's Encrypt" 9 | shared true 10 | 11 | version { 12 | self { 13 | src "https://github.com/mholt/caddy/refs-tags/master?source_action=disambiguate&source_controller=files" 14 | regex "(?<=title=\"v)[0-9.]+(?=\")" 15 | } 16 | linux { 17 | armv5 nil 18 | armv6 nil 19 | armhf nil 20 | mips nil 21 | mips64 nil 22 | mips64le nil 23 | ppc64 nil 24 | ppc64le nil 25 | x86 nil 26 | x86-64 nil 27 | } 28 | freebsd { 29 | armv6 nil 30 | armhf nil 31 | x86 nil 32 | x86-64 nil 33 | } 34 | openbsd { 35 | armv6 nil 36 | armhf nil 37 | x86 nil 38 | x86-64 nil 39 | } 40 | dragonflybsd { 41 | x86-64 nil 42 | } 43 | solaris { 44 | x86-64 nil 45 | } 46 | } 47 | tags { 48 | latest { 49 | src "https://github.com/mholt/caddy/releases/latest" 50 | regex "(?<=archive/v).*(?=\\.zip)" 51 | } 52 | } 53 | exec { 54 | start "app/caddy -log stdout -agree=true -conf=conf/Caddyfile -root=data" 55 | reload "USR1" 56 | check "app/caddy validate -log stdout -conf=conf/Caddyfile" 57 | } 58 | env { 59 | CADDYPATH "conf/cert" 60 | } 61 | aliases { 62 | x86 "386" 63 | x86-64 "amd64" 64 | } 65 | tasks { 66 | build [ 67 | "mkdir_p tmp app conf/cert" 68 | "getfile https://caddyserver.com/download/${KERNEL}/${ARCH_ALIAS}?license=personal tmp/caddy.tar.gz" 69 | "untar_gz tmp/caddy.tar.gz tmp" 70 | "mv tmp/caddy app/caddy" 71 | "rm_r tmp" 72 | 73 | "if root_user? == true" [ 74 | # Give the caddy binary the ability to bind to privileged ports (e.g. 80, 443) as a non-root user 75 | "setcap CAP_NET_BIND_SERVICE=+ep ${BASEDIR}/app/caddy" 76 | ] 77 | ] 78 | } 79 | -------------------------------------------------------------------------------- /dppm/conf/config.con: -------------------------------------------------------------------------------- 1 | host "::1" 2 | port 8994 3 | sources { 4 | default "https://github.com/DFabric/dppm-packages-source/tarball/master" 5 | } 6 | -------------------------------------------------------------------------------- /dppm/pkg.con: -------------------------------------------------------------------------------- 1 | package "dppm" 2 | name "DPPM" 3 | type "HTTP" 4 | license "ISC" 5 | url "https://dfabric.github.io/dppm/" 6 | docs "https://dfabric.github.io/dppm/" 7 | description "An easy, universal way to install and manage applications" 8 | info "Dedicated Platform Package Manager's REST API" 9 | shared true 10 | 11 | version { 12 | self { 13 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 14 | regex "(?<=dppm-static_).*(?=_linux_x86-64)" 15 | } 16 | linux { 17 | arm64 nil 18 | x86 nil 19 | x86-64 nil 20 | } 21 | } 22 | tags { 23 | latest { 24 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 25 | regex "(?<=dppm-static_).*(?=_linux_x86-64)" 26 | } 27 | } 28 | config { 29 | vars { 30 | port "port" 31 | host "host" 32 | } 33 | } 34 | exec { 35 | start "app/bin/dppm server config=conf/config.con" 36 | } 37 | tasks { 38 | build [ 39 | "getfile https://bintray.com/dfabric/apps-static/download_file?file_path=dppm-static_${VERSION}_${KERNEL}_${ARCH}.tar.xz dppm-static.tar.xz" 40 | "untar_xz dppm-static.tar.xz ." 41 | "rm dppm-static.tar.xz" 42 | "mv dppm-static_${VERSION}_${KERNEL}_${ARCH} app" 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /drawio/pkg.con: -------------------------------------------------------------------------------- 1 | package "drawio" 2 | name "draw.io" 3 | type "HTML" 4 | license "Apache-2.0" 5 | url "https://www.draw.io/" 6 | docs "https://github.com/jgraph/drawio/blob/master/README.md" 7 | description "Online flowchart and diagram maker" 8 | info "Online diagramming" 9 | shared true 10 | 11 | version { 12 | self { 13 | src "https://github.com/jgraph/drawio/refs-tags/master?source_action=disambiguate&source_controller=files" 14 | regex "(?<=title=\"v)[0-9.]+(?=\")" 15 | } 16 | } 17 | tags { 18 | latest { 19 | src "https://github.com/jgraph/drawio/releases/latest" 20 | regex "(?<=archive/v).*(?=\\.zip)" 21 | } 22 | } 23 | tasks { 24 | build [ 25 | "getfile https://github.com/jgraph/drawio/archive/v${VERSION}.tar.gz drawio.tar.gz" 26 | "untar_gz drawio.tar.gz ." 27 | "mv drawio-${VERSION}/src/main/webapp app" 28 | "rm drawio.tar.gz" 29 | "rm_r drawio-${VERSION}" 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /etherpad/conf/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Etherpad", 3 | "ip": "::1", 4 | "port" : 9001, 5 | "dbType" : "dirty", 6 | "dbSettings" : { 7 | "filename" : "../data/sqlite3.db", 8 | "charset" : "utf8mb4" 9 | }, 10 | "trustProxy" : true 11 | } 12 | -------------------------------------------------------------------------------- /etherpad/pkg.con: -------------------------------------------------------------------------------- 1 | package "etherpad" 2 | name "Etherpad" 3 | type "HTTP" 4 | license "MIT" 5 | url "http://etherpad.org/" 6 | docs "https://github.com/ether/etherpad-lite/wiki" 7 | description "Really real-time collaborative document editing" 8 | info "Collaborative text editor" 9 | shared false 10 | 11 | deps { 12 | nodejs ">=6.9.0 <11.0.0" 13 | } 14 | version { 15 | self { 16 | src "https://github.com/ether/etherpad-lite/refs-tags/master?source_action=disambiguate&source_controller=files" 17 | regex "(?<=title=\")[0-9.]+(?=\")" 18 | } 19 | } 20 | tags { 21 | latest { 22 | src "https://github.com/ether/etherpad-lite/releases/latest" 23 | regex "(?<=archive/).*(?=.zip)" 24 | } 25 | } 26 | config { 27 | vars { 28 | host "ip" 29 | port "port" 30 | database_type "dbType" 31 | database_host "dbSettings.host" 32 | database_user "dbSettings.user" 33 | database_password "dbSettings.password" 34 | database_name "dbSettings.database" 35 | } 36 | } 37 | databases { 38 | dirty nil 39 | sqlite3 nil 40 | mysql nil 41 | postgresql nil 42 | } 43 | vars [ 44 | "app/package.json" 45 | ] 46 | exec { 47 | start "libs/nodejs/bin/node app/src/node/server.js --apikey ../data/APIKEY.txt --sessionkey ../data/SESSIONKEY.txt --settings ../conf/config.json" 48 | } 49 | env { 50 | NODE_ENV "production" 51 | } 52 | aliases { 53 | sqlite3 "sqlite" 54 | } 55 | tasks { 56 | build [ 57 | # Download etherpad sources 58 | "getfile https://github.com/ether/etherpad-lite/archive/${VERSION}.tar.gz etherpad.tar.gz" 59 | "untar_gz etherpad.tar.gz ." 60 | "mv etherpad-lite-${VERSION} app" 61 | "rm etherpad.tar.gz" 62 | "node libs/nodejs/lib/node_modules/npm install --unsafe-perm --only=production --prefix app/src" 63 | "mkdir app/node_modules" 64 | ] 65 | add [ 66 | "symlink app/node_modules node_modules" 67 | "symlink ../src app/node_modules/ep_etherpad-lite" 68 | ] 69 | } 70 | -------------------------------------------------------------------------------- /filebrowser/conf/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": 8000, 3 | "noAuth": false, 4 | "baseURL": "/admin", 5 | "address": "[::1]", 6 | "alternativeReCaptcha": false, 7 | "reCaptchaKey": "", 8 | "reCaptchaSecret": "", 9 | "database": "data/sqlite3.db", 10 | "log": "stdout", 11 | "plugin": "", 12 | "scope": "data/files", 13 | "allowCommands": true, 14 | "allowEdit": true, 15 | "allowNew": true, 16 | "commands": [ 17 | "git" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /filebrowser/pkg.con: -------------------------------------------------------------------------------- 1 | package "filebrowser" 2 | name "filebrowser" 3 | type "HTTP" 4 | license "Apache-2.0" 5 | url "https://filebrowser.github.io/" 6 | docs "https://filebrowser.github.io/quick-start/" 7 | description "Web File Manager which can be used as a middleware or standalone app" 8 | info "Go to /admin for the File Manager web UI" 9 | shared true 10 | 11 | optdeps { 12 | git ">=1.7.1" 13 | } 14 | version { 15 | self { 16 | src "https://github.com/filebrowser/filebrowser/refs-tags/master?source_action=disambiguate&source_controller=files" 17 | regex "(?<=title=\"v)[0-9.]+(?=\")" 18 | } 19 | linux { 20 | arm64 nil 21 | armhf nil 22 | x86 nil 23 | x86-64 nil 24 | } 25 | freebsd { 26 | x86 nil 27 | x86-64 nil 28 | } 29 | netbsd { 30 | armhf nil 31 | x86 nil 32 | x86-64 nil 33 | } 34 | openbsd { 35 | x86 nil 36 | x86-64 nil 37 | } 38 | darwin { 39 | x86 nil 40 | x86-64 nil 41 | } 42 | } 43 | tags { 44 | latest { 45 | src "https://github.com/filebrowser/filebrowser/releases/latest" 46 | regex "(?<=archive/v).*(?=\\.zip)" 47 | } 48 | } 49 | config { 50 | vars { 51 | port "port" 52 | host "address" 53 | } 54 | } 55 | databases { 56 | sqlite3 nil 57 | } 58 | exec { 59 | start "app/filebrowser -c conf/config.json" 60 | } 61 | aliases { 62 | x86-64 "amd64" 63 | x86 "386" 64 | armhf "arm" 65 | sqlite3 "sqlite" 66 | } 67 | tasks { 68 | build [ 69 | # Download the archive 70 | "mkdir_p app data/files" 71 | "getfile https://github.com/filebrowser/filebrowser/releases/download/v${VERSION}/${KERNEL}-${ARCH_ALIAS}-filebrowser.tar.gz" 72 | "untar_gz ${KERNEL}-${ARCH_ALIAS}-filebrowser.tar.gz ." 73 | "mv filebrowser app/filebrowser" 74 | "rm ${KERNEL}-${ARCH_ALIAS}-filebrowser.tar.gz LICENSE README.md" 75 | ] 76 | } 77 | -------------------------------------------------------------------------------- /git/pkg.con: -------------------------------------------------------------------------------- 1 | package "git" 2 | name "Git" 3 | type "lib" 4 | license "(GPL-2.0 AND LGPL-2.1)" 5 | url "https://git-scm.com" 6 | docs "https://git-scm.com/doc" 7 | description "The Git distributed version control system" 8 | info "git" 9 | 10 | version { 11 | self { 12 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 13 | } 14 | linux { 15 | arm64 "(?<=git-static_).*(?=_linux_arm64)" 16 | armhf "(?<=git-static_).*(?=_linux_armhf)" 17 | x86-64 "(?<=git-static_).*(?=_linux_x86-64)" 18 | } 19 | } 20 | tags { 21 | latest { 22 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 23 | regex "(?<=git-static_).*(?=_linux_arm64)" 24 | } 25 | } 26 | tasks { 27 | build [ 28 | "getfile https://bintray.com/dfabric/apps-static/download_file?file_path=git-static_${VERSION}_${KERNEL}_${ARCH}.tar.xz git-static.tar.xz" 29 | "untar_xz git-static.tar.xz ." 30 | "rm git-static.tar.xz" 31 | "glob mv git-static_${VERSION}_${KERNEL}_${ARCH}/* ." 32 | "rm_r git-static_${VERSION}_${KERNEL}_${ARCH}" 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /gitea/conf/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | RUN_MODE = prod 3 | 4 | [repository] 5 | ROOT = data/gitea-repositories 6 | 7 | [repository.upload] 8 | TEMP_PATH = /tmp/gitea-uploads 9 | 10 | [database] 11 | DB_TYPE = sqlite3 12 | PATH = data/sqlite3.db 13 | 14 | [indexer] 15 | ISSUE_INDEXER_PATH = data/indexers/issues.bleve 16 | REPO_INDEXER_PATH = data/indexers/repos.bleve 17 | 18 | [security] 19 | INSTALL_LOCK = true 20 | 21 | [server] 22 | HTTP_ADDR = [::1] 23 | HTTP_PORT = 3000 24 | UNIX_SOCKET_PERMISSION = 660 25 | LFS_CONTENT_PATH = data/lfs 26 | APP_DATA_PATH = data 27 | 28 | [session] 29 | PROVIDER_CONFIG = data/sessions 30 | 31 | [picture] 32 | AVATAR_UPLOAD_PATH = data/avatars 33 | 34 | [attachments] 35 | PATH = data/attachments 36 | 37 | [log] 38 | MODE = console 39 | -------------------------------------------------------------------------------- /gitea/conf/init/systemd: -------------------------------------------------------------------------------- 1 | [Unit] 2 | [Service] 3 | LimitMEMLOCK=infinity 4 | LimitNOFILE=65535 5 | -------------------------------------------------------------------------------- /gitea/pkg.con: -------------------------------------------------------------------------------- 1 | package "gitea" 2 | name "Gitea" 3 | type "HTTP" 4 | license "MIT" 5 | url "https://gitea.io/" 6 | docs "https://docs.gitea.io/" 7 | description "Git with a cup of tea - A painless self-hosted Git service" 8 | info "Git Version Control" 9 | shared true 10 | 11 | deps { 12 | git ">=1.7.1" 13 | } 14 | version { 15 | self { 16 | src "https://dl.gitea.io/gitea/?sort=name&order=desc" 17 | regex "(?<=\./)[0-9].*(?=/)" 18 | } 19 | linux { 20 | arm64 nil 21 | armhf nil 22 | armv6 nil 23 | x86 nil 24 | x86-64 nil 25 | } 26 | } 27 | tags { 28 | latest { 29 | src "https://github.com/go-gitea/gitea/releases/latest" 30 | regex "(?<=archive/v).*(?=\\.zip)" 31 | } 32 | } 33 | # https://docs.gitea.io/en-us/config-cheat-sheet/ 34 | config { 35 | vars { 36 | url "server.ROOT_URL" 37 | domain "server.DOMAIN" 38 | host "server.HTTP_ADDR" 39 | port "server.HTTP_PORT" 40 | database_type "database.DB_TYPE" 41 | database_address "database.HOST" 42 | database_user "database.USER" 43 | database_password "database.PASSWD" 44 | database_name "database.NAME" 45 | } 46 | } 47 | databases { 48 | sqlite3 nil 49 | mysql ">=5.7.0" 50 | postgresql nil 51 | mssql nil 52 | } 53 | aliases { 54 | x86-64 "amd64" 55 | x86 "386" 56 | arm64 "arm64" 57 | armhf "arm-7" 58 | armv6 "arm-6" 59 | postgressql "postgres" 60 | } 61 | exec { 62 | start "app/gitea web -c ../conf/config.ini" 63 | } 64 | env { 65 | GITEA_WORK_DIR "." 66 | HOME "." 67 | } 68 | tasks { 69 | build [ 70 | # Download the archive 71 | "mkdir app" 72 | "getfile https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-${KERNEL}-${ARCH_ALIAS} app/gitea" 73 | "chmod app/gitea 111" 74 | ] 75 | } 76 | -------------------------------------------------------------------------------- /minetest/conf/config.ini: -------------------------------------------------------------------------------- 1 | [] 2 | port = 30000 3 | bind_address = [::1] 4 | -------------------------------------------------------------------------------- /minetest/pkg.con: -------------------------------------------------------------------------------- 1 | package "minetest" 2 | name "Minetest" 3 | type "UDP" 4 | license "LGPL-2.1" 5 | url "https://www.minetest.net/" 6 | docs "https://dev.minetest.net/Main_Page" 7 | description "Infinite-world block sandbox game engine with support for survival and crafting" 8 | info "Listen to an UDP port" 9 | shared true 10 | 11 | version { 12 | self { 13 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 14 | } 15 | linux { 16 | arm64 "(?<=minetest-static_).*(?=_linux_arm64)" 17 | armhf "(?<=minetest-static_).*(?=_linux_armhf)" 18 | x86-64 "(?<=minetest-static_).*(?=_linux_x86-64)" 19 | } 20 | } 21 | tags { 22 | latest { 23 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 24 | regex "(?<=minetest-static_).*(?=_linux_x86-64)" 25 | } 26 | } 27 | config { 28 | vars { 29 | host ".bind_address" 30 | port ".port" 31 | domain ".server_address" 32 | } 33 | } 34 | exec { 35 | start "app/bin/minetestserver --config conf/config.ini --world data" 36 | reload "HUP" 37 | } 38 | tasks { 39 | build [ 40 | "getfile https://bintray.com/dfabric/apps-static/download_file?file_path=minetest-static_${VERSION}_${KERNEL}_${ARCH}.tar.xz minetest-static.tar.xz" 41 | "untar_xz minetest-static.tar.xz ." 42 | "rm minetest-static.tar.xz" 43 | "mv minetest-static_${VERSION}_${KERNEL}_${ARCH} app" 44 | # Download default Minetest game 45 | "getfile https://github.com/minetest/minetest_game/archive/${VERSION}.tar.gz minetest_game.tar.gz" 46 | "untar_gz minetest_game.tar.gz app/games" 47 | "mv app/games/minetest_game-${VERSION} app/games/minetest_game" 48 | "rm minetest_game.tar.gz" 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /nextcloud/conf/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "system": { 3 | "trusted_domains": ["[::1]"], 4 | "dbtype": "sqlite", 5 | "overwrite": { 6 | "cli": { 7 | "url": "" 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /nextcloud/pkg.con: -------------------------------------------------------------------------------- 1 | package "nextcloud" 2 | name "Nextcloud" 3 | type "PHP" 4 | license "AGPL-3.0" 5 | url "https://nextcloud.com/" 6 | docs "https://nextcloud.com/support/" 7 | description "A safe home for all your data" 8 | info "The first login is slow, please wait. Default user|password is 'admin|1234'." 9 | shared false 10 | 11 | deps { 12 | php ">=5.4.0" 13 | } 14 | version { 15 | self { 16 | src "https://download.nextcloud.com/server/releases/?C=N;O=D" 17 | regex "(?<=nextcloud-).*(?=\.zip\")" 18 | } 19 | } 20 | tags { 21 | latest { 22 | src "https://nextcloud.com/install/" 23 | regex "(?<=nextcloud-).*(?=\.zip\">D)" 24 | } 25 | } 26 | config { 27 | export "libs/php/bin/php -d memory_limit=512M app/occ config:list --private" 28 | import "libs/php/bin/php -d memory_limit=512M app/occ config:import ../conf/config.json" 29 | origin "app/config/config.php" 30 | vars { 31 | url "system.overwrite.cli.url" 32 | database_type "system.dbtype" 33 | database_address "system.dbhost" 34 | database_user "system.dbuser" 35 | database_password "system.dbpassword" 36 | database_name "system.dbname" 37 | } 38 | } 39 | databases { 40 | sqlite3 nil 41 | mysql ">=5.5.0" 42 | postgresql nil 43 | } 44 | aliases { 45 | sqlite3 "sqlite" 46 | postgresql "pgsql" 47 | } 48 | tasks { 49 | build [ 50 | "getfile https://download.nextcloud.com/server/releases/nextcloud-${VERSION}.zip" 51 | "unzip nextcloud-${VERSION}.zip ." 52 | "rm nextcloud-${VERSION}.zip" 53 | "mv nextcloud app" 54 | ] 55 | add [ 56 | "set conf/config.json system.trusted_domains[0] '${DOMAIN}'" 57 | "set conf/config.json system.datadirectory ${BASEDIR}/data" 58 | 59 | "database_type = get conf/config.json system.dbtype" 60 | "if database_type == 'sqlite'" [ 61 | "php -d memory_limit=512M app/occ maintenance:install --admin-pass=1234 --data-dir=${BASEDIR}/data --database=${database_type}" 62 | ] 63 | "else" [ 64 | "php -d memory_limit=512M app/occ maintenance:install --admin-pass=1234 --data-dir=${BASEDIR}/data --database=${database_type} --database-name=${DATABASE_NAME} --database-host=${DATABASE_ADDRESS} --database-user=${DATABASE_USER} --database-pass=${DATABASE_PASSWORD}" 65 | ] 66 | "php -d memory_limit=512M app/occ config:import ../conf/config.json" 67 | "content = php -d memory_limit=512M app/occ config:list --private" 68 | "write conf/config.json '${content}'" 69 | ] 70 | } 71 | -------------------------------------------------------------------------------- /nextcloud/site/caddy: -------------------------------------------------------------------------------- 1 | http://[::1] { 2 | # checks for images 3 | rewrite { 4 | ext .svg .gif .png .html .ttf .woff .ico .jpg .jpeg 5 | r ^/index.php/(.+)$ 6 | to /{1} /index.php?{1} 7 | } 8 | 9 | rewrite { 10 | r ^/\.well-known/host-meta$ 11 | to /public.php?service=host-meta&{query} 12 | } 13 | 14 | rewrite { 15 | r ^/\.well-known/host-meta\.json$ 16 | to /public.php?service=host-meta-json&{query} 17 | } 18 | 19 | rewrite { 20 | r ^/\.well-known/webfinger$ 21 | to /public.php?service=webfinger&{query} 22 | } 23 | 24 | rewrite { 25 | r ^/index.php/.*$ 26 | to /index.php?{query} 27 | } 28 | 29 | # client support (e.g. os x calendar / contacts) 30 | redir /.well-known/carddav /remote.php/carddav 301 31 | redir /.well-known/caldav /remote.php/caldav 301 32 | 33 | # remove trailing / as it causes errors with php-fpm 34 | rewrite { 35 | r ^/remote.php/(webdav|caldav|carddav|dav)(\/?)(\/?)$ 36 | to /remote.php/{1} 37 | } 38 | 39 | rewrite { 40 | r ^/remote.php/(webdav|caldav|carddav|dav)/(.+?)(\/?)(\/?)$ 41 | to /remote.php/{1}/{2} 42 | } 43 | 44 | rewrite { 45 | r ^/public.php/(dav|webdav|caldav|carddav)(\/?)(\/?)$ 46 | to /public.php/{1} 47 | } 48 | 49 | rewrite { 50 | r ^/public.php/(dav|webdav|caldav|carddav)/(.+)(\/?)(\/?)$ 51 | to /public.php/{1}/{2} 52 | } 53 | 54 | # .htaccess / data / config / ... shouldn't be accessible from outside 55 | status 403 { 56 | /.htaccess 57 | /data 58 | /config 59 | /db_structure 60 | /.xml 61 | /README 62 | } 63 | } 64 | 65 | -------------------------------------------------------------------------------- /nodejs/pkg.con: -------------------------------------------------------------------------------- 1 | package "nodejs" 2 | name "Node.js" 3 | type "lib" 4 | license "MIT" 5 | url "https://nodejs.org/" 6 | docs "https://nodejs.org/docs/" 7 | description "Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engin" 8 | info "npm is also included" 9 | 10 | version { 11 | self { 12 | src "https://nodejs.org/dist/index.tab" 13 | } 14 | linux { 15 | arm64 "(?<=v).*(?= 2.*linux-arm64)" 16 | armhf "(?<=v).*(?= 2.*linux-armhfl)" 17 | armv6 "(?<=v).*(?= 2.*linux-armv6l)" 18 | ppc64 "(?<=v).*(?= 2.*linux-aix-ppc64)" 19 | ppc64le "(?<=v).*(?= 2.*linux-ppc64le)" 20 | x86 "(?<=v).*(?= 2.*linux-x86)" 21 | x86-64 "(?<=v).*(?= 2.*linux-x64)" 22 | } 23 | darwin{ 24 | x86-64 "(?<=v).*(?= 2.*darwin-x64)" 25 | } 26 | } 27 | tags { 28 | current { 29 | src "https://nodejs.org/dist/latest/SHASUMS256.txt" 30 | regex "(?<=v).*(?= 2.*linux-x64)" 31 | } 32 | latest { 33 | src "https://nodejs.org/en/" 34 | regex "(?<=Download ).*(?= LTS)" 35 | } 36 | } 37 | aliases { 38 | armhf "armhfl" 39 | armv6 "armv6l" 40 | x86-64 "x64" 41 | } 42 | tasks { 43 | build [ 44 | "node = 'node-v${VERSION}-${KERNEL}-${ARCH_ALIAS}'" 45 | "getfile https://nodejs.org/dist/v${VERSION}/${node}.tar.xz" 46 | "untar_xz ${node}.tar.xz ." 47 | "glob mv ${node}/* ." 48 | "glob rm_r ${node}*" 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /php/conf/config.ini: -------------------------------------------------------------------------------- 1 | [global] 2 | pid = pid 3 | daemonize = no 4 | error_log = logs/error.log 5 | 6 | [www] 7 | listen.mode = 0660 8 | pm = dynamic 9 | pm.max_children = 5 10 | pm.start_servers = 2 11 | pm.min_spare_servers = 1 12 | pm.max_spare_servers = 3 13 | catch_workers_output = yes 14 | php_admin_value[memory_limit] = 512M 15 | -------------------------------------------------------------------------------- /php/pkg.con: -------------------------------------------------------------------------------- 1 | package "php" 2 | name "PHP" 3 | type "lib" 4 | license "PHP-3.01" 5 | url "https://secure.php.net/" 6 | docs "https://secure.php.net/docs.php" 7 | description "PHP is a popular general-purpose scripting language that is especially suited to web development." 8 | info "pear is also included" 9 | 10 | version { 11 | self { 12 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 13 | } 14 | linux { 15 | arm64 "(?<=php-static_).*(?=_linux_arm64)" 16 | armhf "(?<=php-static_).*(?=_linux_armhf)" 17 | x86-64 "(?<=php-static_).*(?=_linux_x86-64)" 18 | } 19 | } 20 | tags { 21 | latest { 22 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 23 | regex "(?<=php-static_).*(?=_linux_arm64)" 24 | } 25 | } 26 | config { 27 | vars { 28 | socket "www.listen" 29 | memory_max "www.php_admin_value\\[memory_limit\\]" 30 | } 31 | } 32 | exec { 33 | start "libs/php/sbin/php-fpm --nodaemonize --allow-to-run-as-root --fpm-config conf/php/config.ini --prefix ." 34 | test "libs/php/sbin/php-fpm --nodaemonize --allow-to-run-as-root --fpm-config conf/php/config.ini --prefix . --test" 35 | reload "USR2" 36 | } 37 | tasks { 38 | build [ 39 | "getfile https://bintray.com/dfabric/apps-static/download_file?file_path=php-static_${VERSION}_${KERNEL}_${ARCH}.tar.xz php-static.tar.xz" 40 | "untar_xz php-static.tar.xz ." 41 | "rm php-static.tar.xz" 42 | "glob mv php-static_${VERSION}_${KERNEL}_${ARCH}/* ." 43 | "rm_r php-static_${VERSION}_${KERNEL}_${ARCH}" 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /riot-web/pkg.con: -------------------------------------------------------------------------------- 1 | package "riot-web" 2 | name "Riot web" 3 | type "HTML" 4 | license "Apache-2.0" 5 | url "https://riot.im/" 6 | docs "https://github.com/vector-im/riot-web/blob/master/README.md" 7 | description "A glossy Matrix collaboration web client" 8 | info "To be used with a Matrix server" 9 | shared false 10 | 11 | version { 12 | self { 13 | src "https://github.com/vector-im/riot-web/refs-tags/master?source_action=disambiguate&source_controller=files" 14 | regex "(?<=title=\"v)[0-9.]+(?=\")" 15 | } 16 | } 17 | tags { 18 | latest { 19 | src "https://github.com/vector-im/riot-web/releases/latest" 20 | regex "(?<=archive/v).*(?=\\.zip)" 21 | } 22 | } 23 | tasks { 24 | build [ 25 | "getfile https://github.com/vector-im/riot-web/releases/download/v${VERSION}/riot-v${VERSION}.tar.gz riot.tar.gz" 26 | "untar_gz riot.tar.gz ." 27 | "mv riot-v${VERSION} app" 28 | "rm riot.tar.gz" 29 | ] 30 | add [ 31 | "cp app/config.sample.json conf/config.json" 32 | "symlink ../conf/config.json app/config.json" 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /selfoss/conf/config.ini: -------------------------------------------------------------------------------- 1 | [globals] 2 | db_type=sqlite 3 | db_file=data/sqlite3.db 4 | logger_destination=error_log 5 | -------------------------------------------------------------------------------- /selfoss/pkg.con: -------------------------------------------------------------------------------- 1 | package "selfoss" 2 | name "selfoss" 3 | type "PHP" 4 | license "GPL-3.0" 5 | url "https://selfoss.aditu.de/" 6 | docs "https://selfoss.aditu.de/#documentation" 7 | description "The new multipurpose rss reader, live stream, mashup, aggregation web application" 8 | info "Do more than RSS, like media aggregation" 9 | shared false 10 | 11 | deps { 12 | php ">=5.4.0" 13 | } 14 | version { 15 | self { 16 | src "https://github.com/SSilence/selfoss/refs-tags/master?source_action=disambiguate&source_controller=files" 17 | regex "(?<=title=\")[0-9.]+(?=\")" 18 | } 19 | } 20 | tags { 21 | latest { 22 | src "https://github.com/SSilence/selfoss/releases/latest" 23 | regex "(?<=archive/).*(?=\\.zip)" 24 | } 25 | } 26 | config { 27 | vars { 28 | url "globals.base_url" 29 | database_type "globals.db_type" 30 | database_port "globals.db_port" 31 | database_host "globals.db_host" 32 | database_user "globals.db_user" 33 | database_password "globals.db_password" 34 | database_name "globals.db_name" 35 | } 36 | } 37 | databases { 38 | sqlite3 nil 39 | mysql ">=5.5.3" 40 | postgresql nil 41 | } 42 | aliases { 43 | sqlite3 "sqlite" 44 | postgresql "pgsql" 45 | } 46 | tasks { 47 | build [ 48 | "getfile https://github.com/SSilence/selfoss/releases/download/${VERSION}/selfoss-${VERSION}.zip selfoss.zip" 49 | "mkdir app" 50 | "unzip selfoss.zip app" 51 | "rm selfoss.zip" 52 | "mv app/data data" 53 | ] 54 | add [ 55 | "symlink ../data app/data" 56 | "symlink ../conf/config.ini app/config.ini" 57 | ] 58 | } 59 | -------------------------------------------------------------------------------- /selfoss/site/caddy: -------------------------------------------------------------------------------- 1 | http://[::1] { 2 | rewrite { 3 | r ^/(favicons|thumbnails)/.*$ 4 | to /data/{1} 5 | } 6 | 7 | rewrite { 8 | to {path} public/{path} /index.php?{query} 9 | } 10 | 11 | status 403 { 12 | /data 13 | /config.ini 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tidb/conf/config.toml: -------------------------------------------------------------------------------- 1 | host = "[::1]" 2 | port = 4000 3 | path = "data" 4 | 5 | [log] 6 | format = "console" 7 | 8 | [status] 9 | report-status = false 10 | status-port = 10080 11 | -------------------------------------------------------------------------------- /tidb/pkg.con: -------------------------------------------------------------------------------- 1 | package "tidb" 2 | name "TiDB" 3 | type "TCP" 4 | license "Apache-2.0" 5 | url "https://www.pingcap.com/" 6 | docs "https://www.pingcap.com/docs/" 7 | description "TiDB is a distributed HTAP database compatible with the MySQL protocol" 8 | info "Not distributed because TiKV and PD not used" 9 | shared true 10 | provides "mysql" 11 | 12 | version { 13 | self { 14 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 15 | } 16 | linux { 17 | arm64 "(?<=tidb-static_).*(?=_linux_arm64)" 18 | x86-64 "(?<=tidb-static_).*(?=_linux_x86-64)" 19 | } 20 | } 21 | tags { 22 | latest { 23 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 24 | regex "(?<=tidb-static_).*(?=_linux_arm64)" 25 | } 26 | } 27 | config { 28 | vars { 29 | host ".host" 30 | port ".port" 31 | port_status "status.status-port" 32 | # socket ".socket" 33 | } 34 | } 35 | exec { 36 | start "app/bin/tidb-server -config conf/config.toml" 37 | } 38 | tasks { 39 | build [ 40 | "getfile https://bintray.com/dfabric/apps-static/download_file?file_path=tidb-static_${VERSION}_${KERNEL}_${ARCH}.tar.xz tidb-static.tar.xz" 41 | "untar_xz tidb-static.tar.xz ." 42 | "rm tidb-static.tar.xz" 43 | "mv tidb-static_${VERSION}_${KERNEL}_${ARCH} app" 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /transmission/conf/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "alt-speed-down": 50, 3 | "alt-speed-enabled": false, 4 | "alt-speed-time-begin": 540, 5 | "alt-speed-time-day": 127, 6 | "alt-speed-time-enabled": false, 7 | "alt-speed-time-end": 1020, 8 | "alt-speed-up": 50, 9 | "bind-address-ipv4": "0.0.0.0", 10 | "bind-address-ipv6": "::", 11 | "blocklist-enabled": false, 12 | "blocklist-url": "http://www.example.com/blocklist", 13 | "cache-size-mb": 4, 14 | "dht-enabled": true, 15 | "download-dir": "data/completed", 16 | "download-limit": 100, 17 | "download-limit-enabled": 0, 18 | "download-queue-enabled": true, 19 | "download-queue-size": 5, 20 | "encryption": 1, 21 | "idle-seeding-limit": 30, 22 | "idle-seeding-limit-enabled": false, 23 | "incomplete-dir": "data/progress", 24 | "incomplete-dir-enabled": true, 25 | "lpd-enabled": false, 26 | "max-peers-global": 200, 27 | "message-level": 1, 28 | "peer-congestion-algorithm": "", 29 | "peer-id-ttl-hours": 6, 30 | "peer-limit-global": 200, 31 | "peer-limit-per-torrent": 50, 32 | "peer-port": 51413, 33 | "peer-port-random-high": 65535, 34 | "peer-port-random-low": 49152, 35 | "peer-port-random-on-start": false, 36 | "peer-socket-tos": "default", 37 | "pex-enabled": true, 38 | "port-forwarding-enabled": false, 39 | "preallocation": 1, 40 | "prefetch-enabled": 1, 41 | "queue-stalled-enabled": true, 42 | "queue-stalled-minutes": 30, 43 | "ratio-limit": 2, 44 | "ratio-limit-enabled": false, 45 | "rename-partial-files": true, 46 | "rpc-authentication-required": false, 47 | "rpc-bind-address": "::1", 48 | "rpc-enabled": true, 49 | "rpc-password": "", 50 | "rpc-port": 9091, 51 | "rpc-url": "/transmission/", 52 | "rpc-username": "transmission", 53 | "rpc-whitelist": "127.0.0.1,::1", 54 | "rpc-whitelist-enabled": false, 55 | "scrape-paused-torrents-enabled": true, 56 | "script-torrent-done-enabled": false, 57 | "script-torrent-done-filename": "", 58 | "seed-queue-enabled": false, 59 | "seed-queue-size": 10, 60 | "speed-limit-down": 100, 61 | "speed-limit-down-enabled": false, 62 | "speed-limit-up": 100, 63 | "speed-limit-up-enabled": false, 64 | "start-added-torrents": true, 65 | "trash-original-torrent-files": false, 66 | "umask": 18, 67 | "upload-limit": 100, 68 | "upload-limit-enabled": 0, 69 | "upload-slots-per-torrent": 14, 70 | "utp-enabled": true, 71 | "watch-dir": "data/watched", 72 | "watch-dir-enabled": true 73 | } 74 | -------------------------------------------------------------------------------- /transmission/pkg.con: -------------------------------------------------------------------------------- 1 | package "transmission" 2 | name "Transmission" 3 | type "HTTP" 4 | license "(GPL-2.0 OR GPL-3.0)" 5 | url "https://transmissionbt.com/" 6 | docs "https://github.com/transmission/transmission/wiki" 7 | description "Cross-platform open source BitTorrent client designed for easy powerful use" 8 | info "Username: transmission - Password: transmission" 9 | shared true 10 | 11 | version { 12 | self { 13 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 14 | } 15 | linux { 16 | arm64 "(?<=transmission-static_).*(?=_linux_arm64)" 17 | armhf "(?<=transmission-static_).*(?=_linux_armhf)" 18 | x86-64 "(?<=transmission-static_).*(?=_linux_x86-64)" 19 | } 20 | } 21 | tags { 22 | latest { 23 | src "https://bintray.com/dfabric/apps-static/download_file?file_path=SHA512SUMS" 24 | regex "(?<=transmission-static_).*(?=_linux_x86-64)" 25 | } 26 | } 27 | config { 28 | vars { 29 | host "rpc-bind-address" 30 | port "rpc-port" 31 | } 32 | } 33 | exec { 34 | start "app/bin/transmission-daemon --config-dir data --foreground --log-error" 35 | reload "HUP" 36 | } 37 | env { 38 | TRANSMISSION_WEB_HOME "app/share/transmission/web" 39 | } 40 | tasks { 41 | build [ 42 | "getfile https://bintray.com/dfabric/apps-static/download_file?file_path=transmission-static_${VERSION}_${KERNEL}_${ARCH}.tar.xz transmission-static.tar.xz" 43 | "untar_xz transmission-static.tar.xz ." 44 | "rm transmission-static.tar.xz" 45 | "mv transmission-static_${VERSION}_${KERNEL}_${ARCH} app" 46 | "mkdir_p data/completed data/progress data/watched" 47 | ] 48 | add [ 49 | "symlink ../conf/config.json data/settings.json" 50 | "set conf/config.json umask 23" 51 | ] 52 | } 53 | -------------------------------------------------------------------------------- /wordpress/conf/config.yml: -------------------------------------------------------------------------------- 1 | color: false 2 | 3 | # Subcommand defaults (e.g. `wp config create`) 4 | config create: {} 5 | -------------------------------------------------------------------------------- /wordpress/pkg.con: -------------------------------------------------------------------------------- 1 | package "wordpress" 2 | name "WordPress" 3 | type "PHP" 4 | license "GPL-2.0" 5 | url "https://wordpress.org/" 6 | docs "https://codex.wordpress.org/" 7 | description "Create a beautiful website, blog, or app" 8 | info "Open source content management system (CMS)" 9 | shared false 10 | 11 | deps { 12 | php ">=5.4.0" 13 | } 14 | version { 15 | self { 16 | src "https://wordpress.org/download/releases/" 17 | regex "(?<=wordpress-)[0-9].*(?=.tar.gz\")" 18 | } 19 | } 20 | tags { 21 | latest { 22 | src "https://api.wordpress.org/core/stable-check/1.0/" 23 | regex "(?<=\").*(?=\" : \"latest)" 24 | } 25 | } 26 | config { 27 | import "libs/php/bin/php app/wp-cli.php --path=app --allow-root config create --skip-check" 28 | origin "app/wp-config.php" 29 | vars { 30 | url "url" 31 | database_address "config create.dbhost" 32 | database_user "config create.dbuser" 33 | database_password "config create.dbpass" 34 | database_name "config create.dbname" 35 | } 36 | } 37 | databases { 38 | mysql ">=5.5.0" 39 | } 40 | env { 41 | WP_CLI_CONFIG_PATH "conf/config.yml" 42 | WP_CLI_CACHE_DIR "data/.wp-cli/cache/" 43 | WP_CLI_PACKAGES_DIR "data/.wp-cli/packages/" 44 | } 45 | tasks { 46 | build [ 47 | "getfile https://wordpress.org/wordpress-${VERSION}.tar.gz" 48 | "untar_gz wordpress-${VERSION}.tar.gz ." 49 | "rm wordpress-${VERSION}.tar.gz" 50 | "mv wordpress app" 51 | "getfile https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar app/wp-cli.php" 52 | "mkdir_p data/.wp-cli" 53 | ] 54 | add [ 55 | "mv app/wp-content data/wp-content" 56 | "symlink ../data/wp-content app/wp-content" 57 | "set conf/config.yml path ${BASEDIR}/app" 58 | "php app/wp-cli.php --path=app --allow-root config create --skip-check" 59 | ] 60 | } 61 | -------------------------------------------------------------------------------- /wordpress/site/caddy: -------------------------------------------------------------------------------- 1 | http://[::1] { 2 | gzip 3 | 4 | # Prevent malicious PHP uploads from running 5 | rewrite { 6 | r /uploads\/(.*)\.php 7 | to / 8 | } 9 | 10 | rewrite { 11 | if {path} not_match /wp-admin 12 | to {path} {path}/ /index.php?{query} 13 | } 14 | } 15 | --------------------------------------------------------------------------------