diff --git a/README.md b/README.md index 8c836f0..e4eabf0 100644 --- a/README.md +++ b/README.md @@ -10,20 +10,33 @@ The aims is to provide a ready-to-run recipes that you can just copy, paste and So, without further ado, here's the current list: # Ad Blockers & local DNS -- [AdGuard Home](apps/ad-blockers/adguard-home.md) +- [AdGuard Home](apps/ad-blockers/adguard.md) - [PiHole](apps/ad-blockers/pihole.md) -- [Block Lists](apps/ad-blockers/block-lists.md) +- [Block Lists](apps/ad-blockers/lists.md) + + +# Blogging +- [AnchorCMS](https://github.com/anchorcms/anchor-cms#installation) +- [Ghost](https://ghost.org/docs/install/docker/) +- [Hugo](https://gohugo.io/) +- [Kirby](https://getkirby.com/) +- [Metalsmith](https://metalsmith.io/) +- [Pagekit](https://pagekit.com/docs/getting-started/installation) +- [Pelican](https://docs.getpelican.com/en/stable/quickstart.html#installation) +- [PostLeaf](https://www.postleaf.org/installing) +- [Textpattern](https://docs.textpattern.com/installation/) +- [WriteFreely](https://github.com/writeas/writefreely) # Bookmarks -- Shaarli -- Shiori -- Shaark +- [Shaarli](apps/bookmarks/shaarli.md) +- [Shiori](apps/bookmarks/shiori.md) +- [Shaark](apps/bookmarks/shaark.md) # Cloud -- FileRun -- NextCloud -- Pydio -- Seafile +- [FileRun](apps/cloud/filerun.md) +- [NextCloud](apps/cloud/nextcloud.md) +- [Pydio](apps/cloud/pydio.md) +- [Seafile](apps/cloud/seafile.md) # Dashboard - DashMachine diff --git a/apps/ad-blockers/adguard-home.md b/apps/ad-blockers/adguard.md similarity index 95% rename from apps/ad-blockers/adguard-home.md rename to apps/ad-blockers/adguard.md index 87af6ff..fe6e6c2 100644 --- a/apps/ad-blockers/adguard-home.md +++ b/apps/ad-blockers/adguard.md @@ -4,8 +4,9 @@ - [Homepage](https://adguard.com/en/adguard-home/overview.html) - [Overview blog post](https://adguard.com/en/blog/in-depth-review-adguard-home.html) -- [Github](https://github.com/AdguardTeam/AdguardHome) -- [DockerHub](https://hub.docker.com/r/adguard/adguardhome) +- [Github repo](https://github.com/AdguardTeam/AdguardHome) +- [DockerHub repo](https://hub.docker.com/r/adguard/adguardhome) + ## `docker-compose.yml` ```yml diff --git a/apps/ad-blockers/blacklists.txt b/apps/ad-blockers/lists-black.txt similarity index 100% rename from apps/ad-blockers/blacklists.txt rename to apps/ad-blockers/lists-black.txt diff --git a/apps/ad-blockers/whitelist.txt b/apps/ad-blockers/lists-white.txt similarity index 100% rename from apps/ad-blockers/whitelist.txt rename to apps/ad-blockers/lists-white.txt diff --git a/apps/ad-blockers/block-lists.md b/apps/ad-blockers/lists.md similarity index 91% rename from apps/ad-blockers/block-lists.md rename to apps/ad-blockers/lists.md index d6b266d..d9618d8 100644 --- a/apps/ad-blockers/block-lists.md +++ b/apps/ad-blockers/lists.md @@ -6,8 +6,8 @@ - [disconnect.me/simple_ad](https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt) - [hosts-file.net/ad_servers](https://hosts-file.net/ad_servers.txt) - [ookangzheng/dbl-oisd-nl](https://raw.githubusercontent.com/ookangzheng/dbl-oisd-nl/master/dbl.txt) -- [more lists](blacklists.txt) +- [more lists](lists-black.txt) # Whitelists - [raghavdua1995/DNSlock-PiHole-whitelist](https://raw.githubusercontent.com/raghavdua1995/DNSlock-PiHole-whitelist/master/whitelist.list) -- [another one](whitelist.txt) +- [another one](lists-white.txt) diff --git a/apps/ad-blockers/pihole.md b/apps/ad-blockers/pihole.md index 8316f3a..f4807d6 100644 --- a/apps/ad-blockers/pihole.md +++ b/apps/ad-blockers/pihole.md @@ -1,12 +1,12 @@ # PiHole ## Overview - - [Homepage](https://pi-hole.net/) - [Pihole Docker github repo](https://github.com/pi-hole/docker-pi-hole) - [Docs](https://docs.pi-hole.net/) -- [Github](https://github.com/pi-hole) -- [DockerHub](https://hub.docker.com/r/pihole/pihole) +- [Github repo](https://github.com/pi-hole) +- [DockerHub repo](https://hub.docker.com/r/pihole/pihole) + ## `docker-compose.yml` ```yml diff --git a/apps/bookmarks/shaark.jpg b/apps/bookmarks/shaark.jpg new file mode 100644 index 0000000..9d2faa2 Binary files /dev/null and b/apps/bookmarks/shaark.jpg differ diff --git a/apps/bookmarks/shaark.md b/apps/bookmarks/shaark.md new file mode 100644 index 0000000..b958ecb --- /dev/null +++ b/apps/bookmarks/shaark.md @@ -0,0 +1,10 @@ +# Shaark +Good looking, but doesn't work ATM. +Also - doesn't have a public image on Docker Hub (or similar), so can't use `docker-compose` the easy way. + +- [Github repo](https://github.com/MarceauKa/shaark) +- [DockerHub repo]() +- [Docs](https://github.com/MarceauKa/shaark#documentation) +- [Demo](https://shaark.mka.ovh): `admin@example.com`:`secret` + +![Screenshot](shaark.jpg) diff --git a/apps/bookmarks/shaarli.md b/apps/bookmarks/shaarli.md new file mode 100644 index 0000000..c24c73c --- /dev/null +++ b/apps/bookmarks/shaarli.md @@ -0,0 +1,136 @@ +# Shaarli +Not too bad. Just stores & tags links, nothing more. +- [Github repo](https://github.com/shaarli/Shaarli) +- [Docs](https://shaarli.readthedocs.io/en/master/) +- [Demo](https://demo.shaarli.org/) + +![Screenshot](shaarli.png) + + +## docker-compose.yml +```yml +--- +version: '3' +services: + shaarli: + image: shaarli/shaarli:master + container_name: shaarli + restart: unless-stopped + environment: + - TZ=Europe/Dublin + ports: + - "3123:80" + volumes: + - ./cache:/var/www/shaarli/cache + - ./data:/var/www/shaarli/data +``` + +## Tips & Tricks + +### Nicer theme +Edit `shaarli/data/user.css`: +```css +:root { + --main-color: #144837; + --background-color: #333; + --dark-main-color: #0c281d; +} + +#actions, +#search { display: none; position: relative; } +#actions.open, +#search.open { display: block; } + +#shaarli-menu-tags, +#shaarli-menu-picwall, +#shaarli-menu-daily, +#shaarli-menu-desktop-rss, +#linklist-paging-bottom-block, +#footer, +.linksperpage form, +.linkcount, +.fa-external-link, +.pure-u-lg-2-24, +#search-linklist .searchform { display: none !important; } + +#link-count-content, +#linklist-loop-content { width: 90%; margin: 10px auto; } + +#linklist { margin-bottom: 40px; } + +.linklist-item-title, +.linklist-item { background-color: #222; color: #f0f0f0; } + +.linklist-item { margin-bottom: 20px; } + +.linklist-item-title .linklist-link { color: #ccc !important; font-weight: 300; } + +.linklist-item-infos { background: #0003; color: #333; } + +.linklist-filters, +.linksperpage, +.linklist-item-description, +.linklist-item-infos { color: #aaa !important; } + +.linklist-item.private::before { display: none; } +.linklist-item { box-shadow: none; } + +.linksperpage a, +.linklist-filters .filter-off { background: none; color: #eee; } + +.linklist-item-infos { padding: 10px 20px; } +.linklist-item-infos a { color: #317b63; } +.linklist-item-infos a:hover { color: #eee; } + +.label { font-weight: 300; } +.markdown { font-size: 14px; } + +.linklist-item-title { padding: 5px 10px; } +.linklist-item-description { padding: 5px 20px; } +.linklist-item-thumbnail { margin: -5px -10px 0 0; } + + +.linklist-item-infos-dateblock { display: flex; align-items: center; } +.linklist-item-infos-controls-group { display: inline-flex !important; align-items: center; border-right: 0; } +.linklist-item-infos-controls-item { + height: 24px; + display: inline-flex; + align-items: center; + justify-content: flex-start; + width: 32px; +} +.linklist-item-infos-url { font-size: 14.4px; } +.linklist-item-editbuttons { position: absolute; right: 130px; } + +.page-form, +.page-form .window-title, +.page-form { background: #222; color: #eee; box-shadow: none; } + +.page-form-complete div, +.page-form-complete p { color: #eee; } + +.page-form input[type="password"], +.page-form input[type="text"], +.page-form textarea { background: #111; color: #eee; border-color: #111; } + +.page-form a.button, +.page-form input[type="submit"] { box-shadow: none; border-radius: 5px; } + +.pure-button { + background-color: #111; + color: #ccc; + border-radius: 5px; + padding: 12px; + font-weight: 300; +} + +.linklist-item-tags { margin-bottom: 5px; } + +.edit-link, +.delete-link, +.pin-link { font-size: 14px !important; } + +.linklist-item-infos .pin-link, +.edit-link, +.delete-link { color: #ccc !important; } +``` diff --git a/apps/bookmarks/shaarli.png b/apps/bookmarks/shaarli.png new file mode 100644 index 0000000..bcfa0f6 Binary files /dev/null and b/apps/bookmarks/shaarli.png differ diff --git a/apps/bookmarks/shiori.md b/apps/bookmarks/shiori.md new file mode 100644 index 0000000..e133e34 --- /dev/null +++ b/apps/bookmarks/shiori.md @@ -0,0 +1,23 @@ +# Shiori +- [Github repo](https://github.com/go-shiori/shiori) +- [Docs](https://github.com/go-shiori/shiori/wiki) + +![Screenshot](shiori.png) + + +## docker-compose.yml +```yml +--- +version: '3' +services: + shiori: + image: radhifadlillah/shiori + container_name: shiori + restart: unless-stopped + environment: + - TZ=Europe/Dublin + ports: + - "3010:8080" + volumes: + - ./data:/srv/shiori +``` diff --git a/apps/bookmarks/shiori.png b/apps/bookmarks/shiori.png new file mode 100644 index 0000000..28c58b0 Binary files /dev/null and b/apps/bookmarks/shiori.png differ diff --git a/apps/cloud/filerun.jpg b/apps/cloud/filerun.jpg new file mode 100644 index 0000000..f21978d Binary files /dev/null and b/apps/cloud/filerun.jpg differ diff --git a/apps/cloud/filerun.md b/apps/cloud/filerun.md new file mode 100644 index 0000000..30b3ab9 --- /dev/null +++ b/apps/cloud/filerun.md @@ -0,0 +1,53 @@ +# FileRun +Mobile apps are just webdav clients. + +
+ +- [Homepage](https://filerun.com/) +- [DockerHub repo](https://hub.docker.com/r/afian/filerun/) +- [Docs](https://docs.filerun.com/) +- [Demo](https://demo.filerun.co/?username=admin&password=admin) + +![Screenshot](filerun.jpg) + + +## docker-compose.yml +```yml +version: '2' +services: + db: + image: mariadb:10.1 + container_name: filerun-db + restart: unless-stopped + environment: + MYSQL_ROOT_PASSWORD: your_mysql_root_password + MYSQL_USER: db_user + MYSQL_PASSWORD: db_user_password_01 + MYSQL_DATABASE: filerundb + volumes: + - ./data/db:/var/lib/mysql + + web: + image: afian/filerun + container_name: filerun + restart: unless-stopped + environment: + FR_DB_HOST: db + FR_DB_PORT: 3306 + FR_DB_NAME: filerundb + FR_DB_USER: db_user + FR_DB_PASS: db_user_password_01 + APACHE_RUN_USER: www-data + APACHE_RUN_USER_ID: 33 + APACHE_RUN_GROUP: www-data + APACHE_RUN_GROUP_ID: 33 + depends_on: + - db + links: + - db:db + ports: + - "3090:80" + volumes: + - ./data/html:/var/www/html + - ./data/user-files:/user-files +``` diff --git a/apps/cloud/nextcloud.md b/apps/cloud/nextcloud.md new file mode 100644 index 0000000..e337094 --- /dev/null +++ b/apps/cloud/nextcloud.md @@ -0,0 +1,82 @@ +# NextCloud +- Mobile apps are just for files, not other apps (e.g. tasks) installed in NextCloud. + +
+ +- [Homepage](https://nextcloud.com/) +- [Github repo](https://github.com/nextcloud) +- [DockerHub repo](https://hub.docker.com/_/nextcloud/) +- [Breeze dark theme](https://github.com/mwalbeck/nextcloud-breeze-dark) - some stuff doesn't work +- [Docs](https://docs.nextcloud.com/server/20/admin_manual/) +- [Demo](https://try.nextcloud.com/) + + +## docker-compose.yml +```yml +version: '2' +services: + app: + image: nextcloud:latest + container_name: nextcloud + restart: unless-stopped + links: + - db + - redis + ports: + - 3100:80 + environment: + - MYSQL_PASSWORD=nextcloud + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + - MYSQL_HOST=db + - TRUSTED_PROXIES= # e.g. HOST IP + - OVERWRITEPROTOCOL=https + - OVERWRITEHOST=nextcloud.domain.com + - REDIS_HOST=redis + - REDIS_HOST_PASSWORD=nextcloud # must be set, because of a bug + volumes: + - ./nextcloud:/var/www/html + - ./data:/var/www/html/data + + cron: + image: nextcloud:latest + restart: unless-stopped + volumes: + - ./nextcloud:/var/www/html + entrypoint: /cron.sh + depends_on: + - db + - redis + + db: + image: mariadb + container_name: nextcloud-db + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: unless-stopped + volumes: + - ./db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD=nextcloud + - MYSQL_PASSWORD=nextcloud + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + redis: + image: redis:alpine + container_name: nextcloud-redis + restart: unless-stopped + command: redis-server --requirepass nextcloud + environment: + - TZ=Europe/Dublin + volumes: + - ./redis:/data + expose: + - 6379 +``` + +## Tips & Tricks + +### Generate password/secret key +```sh +openssl rand -base64 32 +``` diff --git a/apps/cloud/pydio.md b/apps/cloud/pydio.md new file mode 100644 index 0000000..ede7702 --- /dev/null +++ b/apps/cloud/pydio.md @@ -0,0 +1,48 @@ +# Pydio Cells +- Overly complex and... weird. +- Has mobile apps. + +
+ +- [Homepage](https://pydio.com/en/features/pydio-cells-overview) +- [Github repo](https://github.com/pydio/cells) +- [DockerHub repo](https://hub.docker.com/r/pydio/cells/) +- [Docs](https://pydio.com/en/docs/administration-guides) + + +## docker-compose.yml +```yml +--- +version: '3' +services: + cells: + image: pydio/cells:latest + container_name: pydio + hostname: cells + restart: unless-stopped + ports: + - "3060:8080" + environment: + - CELLS_NO_TLS=0 + - CELLS_BIND=0.0.0.0:8080 + - CELLS_EXTERNAL=pydio.domain.com + - EXTERNAL_BIND=pydio.domain.com + volumes: + - "./datadir:/var/cells/data" + - "./workingdir:/var/cells" + + mysql: + image: mysql:5.7 + container_name: pydio-db + restart: unless-stopped + ports: + - "3306:3306" + environment: + MYSQL_ROOT_PASSWORD: secret + MYSQL_DATABASE: cells + MYSQL_USER: pydio + MYSQL_PASSWORD: secret + command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci] + volumes: + - "./mysqldir:/var/lib/mysql" +``` diff --git a/apps/cloud/seafile.md b/apps/cloud/seafile.md new file mode 100644 index 0000000..a38f14a --- /dev/null +++ b/apps/cloud/seafile.md @@ -0,0 +1,61 @@ +# Seafile +- Too simple, just raw files nothing more. +- Has mobile apps. + +
+ +- [Homepage](https://www.seafile.com/en/home/) +- [Github repo](https://github.com/haiwen/seafile) +- [DockerHub repo](https://hub.docker.com/r/seafileltd/seafile-mc) +- [Docs](https://download.seafile.com/d/320e8adf90fa43ad8fee/files/?p=%2Findex.md) + +![Screenshot]() + + +## docker-compose.yml +```yml +version: '2.0' +services: + db: + image: mariadb:10.1 + container_name: seafile-mysql + environment: + - MYSQL_ROOT_PASSWORD=db_dev # Requested, set the root's password of MySQL service. + - MYSQL_LOG_CONSOLE=true + volumes: + - ./db:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store. + networks: + - seafile-net + + memcached: + image: memcached:1.5.6 + container_name: seafile-memcached + entrypoint: memcached -m 256 + networks: + - seafile-net + + seafile: + image: seafileltd/seafile-mc:latest + container_name: seafile + ports: + - "8080:80" +# - "443:443" # If https is enabled, cancel the comment. + volumes: + - ./data:/shared # Requested, specifies the path to Seafile data persistent store. + environment: + - DB_HOST=db + - DB_ROOT_PASSWD=db_dev # Requested, the value shuold be root's password of MySQL service. + - TIME_ZONE=Europe/Dublin # Optional, default is UTC. Should be uncomment and set to your local time zone. + - SEAFILE_ADMIN_EMAIL=me@example.com # Specifies Seafile admin user, default is 'me@example.com'. + - SEAFILE_ADMIN_PASSWORD=asecret # Specifies Seafile admin password, default is 'asecret'. + - SEAFILE_SERVER_LETSENCRYPT=false # Whether to use https or not. + - SEAFILE_SERVER_HOSTNAME=docs.seafile.com # Specifies your host name if https is enabled. + depends_on: + - db + - memcached + networks: + - seafile-net + +networks: + seafile-net: +``` diff --git a/template.md b/template.md new file mode 100644 index 0000000..d6ac6e6 --- /dev/null +++ b/template.md @@ -0,0 +1,15 @@ +# +- [Github repo]() +- [DockerHub repo]() +- [Docs]() + +![Screenshot]() + + +## docker-compose.yml +```yml + +``` + + +## Tips & Tricks