From b1973c4381af3ab2922c763c626f5548fbc9309a Mon Sep 17 00:00:00 2001 From: "Graham R. Armstrong" Date: Fri, 16 Jul 2021 17:52:21 +0100 Subject: [PATCH 1/2] update generate_readme.py * Add shebang to explicitly state which Python version the script needs. --- scripts/generate_readme.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) mode change 100644 => 100755 scripts/generate_readme.py diff --git a/scripts/generate_readme.py b/scripts/generate_readme.py old mode 100644 new mode 100755 index 44df6f6..c5a12f7 --- a/scripts/generate_readme.py +++ b/scripts/generate_readme.py @@ -1,3 +1,5 @@ +#!/usr/bin/python3 + from pathlib import Path def generate_img_tag(file): @@ -11,4 +13,4 @@ if __name__ == "__main__": f.write("# Homer Icons\n\n") f.write("[Homer Dashboard](https://github.com/bastienwirtz/homer)\n\n") f.write(" ".join(img_tags)) - f.write("\n") \ No newline at end of file + f.write("\n") From ada0a6baeaebf1c4e46d6f4938922b0a0acbbaae Mon Sep 17 00:00:00 2001 From: "Graham R. Armstrong" Date: Fri, 16 Jul 2021 17:10:26 +0100 Subject: [PATCH 2/2] add yacht Resized PNG from Github page of Yacht: https://raw.githubusercontent.com/SelfhostedPro/Yacht/master/readme_media/Yacht_logo_1_dark.png Yacht project: https://github.com/SelfhostedPro/Yacht/ A web interface for managing docker containers with an emphasis on templating to provide 1 click deployments. --- README.md | 2 +- png/yacht.png | Bin 0 -> 13391 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 png/yacht.png diff --git a/README.md b/README.md index ae12c7d..aa380ae 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,4 @@ [Homer Dashboard](https://github.com/bastienwirtz/homer) -adguardhome adminer airsonic alarmpi alertmanager alltube amazon amd amvd ansible archivebox archiveteamwarrior argocd ariang artifactory authelia avmfritzbox awx azure azuredns bacula badge baikal bastillion bazarr beats bithumen bitwarden booksonic bookstack box brewpi cabot cadvisor calibreweb cardigann checkmk chevereto chowdown chronograf clarkson cloudcmd cockpit cockpitcms code codeserver codimd concourse couchpotato cpanel cryptpad cyberchef deemix deluge directus docker docspell dokuwiki domoticz dozzle drone droppy duplicacy duplicati ebay elastic elasticsearch element emby embystat esphome evebox facebook-messenger facebook filebrowser filerun firefly firefoxsend flexget flood foldingathome freeipa freenas freepbx freshrss ghost gitea github gitlab glances gogs google-calendar google-keep google-mail googlemaps gotify grafana grav graylog grocy guacamole handbrake haproxy hasura hdhomerun headphones healthchecks heimdall home-assistant homebridge homer hp hubitat huginn hydra icecast icinga idrac ilo infoblox invidious invoiceninja iobroker irc jackett jaeger jdownloader jeedom jellyfin jenkins jitsimeet joomla kanboard keila keycloak kibana kimai kitana kodi komga krusader kubernetes-dashboard kutt lazylibrarian leantime lemonldapng letencrypt librenms librephotos librespeed lidarr listmonk logstash loki longhorn lychee mailhog mainsail mattermost mayanedms mcmyadmin mealie mediawiki medusa meraki microsoft-todo mikrotik mineos miniflux minio molecule mongodb monica monit motioneye mylar n8n nagios navidrome ncore nessus netatmo netboot netbootxyz netbox netdata nextcloud nginx nginxproxymanager nodered nowshowing nxfilter nzbget nzbhydra octoprint ombi omnidb onlyoffice openhab openmaptiler openmediavault openspeedtest opensprinkler openvpn openwrt opnsense osticket overseerr owncloud ownphotos pagerduty paloaltonetworks paperless-ng papermerge partkeepr peertube pfsense pgadmin phantombot photoprism photostructure photoview phpldapadmin phpmyadmin piaware pihole pingdom piwigo plausible pleroma plesk plex plexdrive plexrequests plume podify portainer portus postgres printer privatebin projectsend prometheus prowlarr proxmox prtg psitransfer pterodactyl pyload qbittorrent qnap rabbitmq radarr rainloop rancher raneto rclone readarr recalbox redis requestrr resiliosync riot rocketchat rompya rook roundcube router rspamd rstudioserver rundeck runeaudio rutorrent sabnzbd scrutiny seafile searxmetasearchengine serviio shaarli shinobi sickbeard sickchill sickgear slack snibox sonarqube sonarr sourcegraph splunk spotweb squidex statping strapi streama synclounge syncthing synology taiga tandoorrecipes tasmoadmin tasmota tautulli tdarr teedy theia thelounge tinytinyrss tplink traccar traefik transmission trilium truenas tubesync tvheadend ubooquity ultimateguitar unifi unraid updog urbackup vault virtualradarserver vmware vmwarehorizon volumio wallabag wanikani watcher watchtower webdav webmin webtools wekan wetty wggenweb wikijs wireguard wordpress xigmanas xteve xwiki ynab youtube youtubedl zabbix zigbee2mqtt znc zoneminder zulip +adguardhome adminer airsonic alarmpi alertmanager alltube amazon amd amvd ansible archivebox archiveteamwarrior argocd ariang artifactory authelia avmfritzbox awx azure azuredns bacula badge baikal bastillion bazarr beats bithumen bitwarden booksonic bookstack box brewpi cabot cadvisor calibreweb cardigann checkmk chevereto chowdown chronograf clarkson cloudcmd cockpit cockpitcms code codeserver codimd concourse couchpotato cpanel cryptpad cyberchef deemix deluge directus docker docspell dokuwiki domoticz dozzle drone droppy duplicacy duplicati ebay elastic elasticsearch element emby embystat esphome evebox facebook-messenger facebook filebrowser filerun firefly firefoxsend flexget flood foldingathome freeipa freenas freepbx freshrss ghost gitea github gitlab glances gogs google-calendar google-keep google-mail googlemaps gotify grafana grav graylog grocy guacamole handbrake haproxy hasura hdhomerun headphones healthchecks heimdall home-assistant homebridge homer hp hubitat huginn hydra icecast icinga idrac ilo infoblox invidious invoiceninja iobroker irc jackett jaeger jdownloader jeedom jellyfin jenkins jitsimeet joomla kanboard keila keycloak kibana kimai kitana kodi komga krusader kubernetes-dashboard kutt lazylibrarian leantime lemonldapng letencrypt librenms librephotos librespeed lidarr listmonk logstash loki longhorn lychee mailhog mainsail mattermost mayanedms mcmyadmin mealie mediawiki medusa meraki microsoft-todo mikrotik mineos miniflux minio molecule mongodb monica monit motioneye mylar n8n nagios navidrome ncore nessus netatmo netboot netbootxyz netbox netdata nextcloud nginx nginxproxymanager nodered nowshowing nxfilter nzbget nzbhydra octoprint ombi omnidb onlyoffice openhab openmaptiler openmediavault openspeedtest opensprinkler openvpn openwrt opnsense osticket overseerr owncloud ownphotos pagerduty paloaltonetworks paperless-ng papermerge partkeepr peertube pfsense pgadmin phantombot photoprism photostructure photoview phpldapadmin phpmyadmin piaware pihole pingdom piwigo plausible pleroma plesk plex plexdrive plexrequests plume podify portainer portus postgres printer privatebin projectsend prometheus prowlarr proxmox prtg psitransfer pterodactyl pyload qbittorrent qnap rabbitmq radarr rainloop rancher raneto rclone readarr recalbox redis requestrr resiliosync riot rocketchat rompya rook roundcube router rspamd rstudioserver rundeck runeaudio rutorrent sabnzbd scrutiny seafile searxmetasearchengine serviio shaarli shinobi sickbeard sickchill sickgear slack snibox sonarqube sonarr sourcegraph splunk spotweb squidex statping strapi streama synclounge syncthing synology taiga tandoorrecipes tasmoadmin tasmota tautulli tdarr teedy theia thelounge tinytinyrss tplink traccar traefik transmission trilium truenas tubesync tvheadend ubooquity ultimateguitar unifi unraid updog urbackup vault virtualradarserver vmware vmwarehorizon volumio wallabag wanikani watcher watchtower webdav webmin webtools wekan wetty wggenweb wikijs wireguard wordpress xigmanas xteve xwiki yacht ynab youtube youtubedl zabbix zigbee2mqtt znc zoneminder zulip diff --git a/png/yacht.png b/png/yacht.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa0ed9731f72ae14250ebd3ab21f583e824a36d GIT binary patch literal 13391 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