Found a better drive app
This commit is contained in:
parent
befbffb12e
commit
e32e4f586f
|
@ -12,24 +12,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
git.woozle.org {
|
git.woozle.org {
|
||||||
reverse_proxy forgejo:3000
|
reverse_proxy gitea:3000
|
||||||
}
|
}
|
||||||
|
|
||||||
drive.woozle.org {
|
drive.woozle.org {
|
||||||
import restricted-access
|
import restricted-access
|
||||||
|
reverse_proxy webfs:5000
|
||||||
# XXX: browsing says method not allowed
|
|
||||||
@nondav {
|
|
||||||
method HEAD GET
|
|
||||||
}
|
|
||||||
# route overrides built-in ordering
|
|
||||||
route {
|
|
||||||
file_server @nondav {
|
|
||||||
root /srv/
|
|
||||||
browse /browser.html
|
|
||||||
}
|
|
||||||
reverse_proxy webdav:8000
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
media.woozle.org {
|
media.woozle.org {
|
||||||
|
@ -104,8 +92,6 @@ deergrove.woozle.org {
|
||||||
}
|
}
|
||||||
|
|
||||||
handle {
|
handle {
|
||||||
file_server {
|
reverse_proxy portal:8080
|
||||||
root /www
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
. {
|
. {
|
||||||
bind 192.168.86.2
|
bind 192.168.86.2
|
||||||
hosts {
|
hosts {
|
||||||
192.168.86.2 sweetums.woozle.org deergrove.woozle.org drive.woozle.org git.woozle.org ancestry.woozle.org media.woozle.org auth.woozle.org
|
192.168.86.2 sweetums.woozle.org deergrove.woozle.org drive.woozle.org git.woozle.org ancestry.woozle.org media.woozle.org photos.woozle.org auth.woozle.org
|
||||||
fallthrough
|
fallthrough
|
||||||
}
|
}
|
||||||
forward . 8.8.8.8
|
forward . 8.8.8.8
|
||||||
|
|
|
@ -28,18 +28,6 @@ services:
|
||||||
configs:
|
configs:
|
||||||
- source: Caddyfile
|
- source: Caddyfile
|
||||||
target: /etc/caddy/Caddyfile
|
target: /etc/caddy/Caddyfile
|
||||||
- source: index.html
|
|
||||||
target: /www/index.html
|
|
||||||
- source: index.mjs
|
|
||||||
target: /www/index.mjs
|
|
||||||
- source: deergrove.png
|
|
||||||
target: /www/deergrove.png
|
|
||||||
- source: index.css
|
|
||||||
target: /www/index.css
|
|
||||||
- source: portal.json
|
|
||||||
target: /www/portal.json
|
|
||||||
- source: browser.html
|
|
||||||
target: /browser.html
|
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- host.docker.internal:host-gateway
|
- host.docker.internal:host-gateway
|
||||||
- host.lan:192.168.86.2
|
- host.lan:192.168.86.2
|
||||||
|
@ -50,6 +38,14 @@ services:
|
||||||
- passwd
|
- passwd
|
||||||
- simpleauth.key
|
- simpleauth.key
|
||||||
|
|
||||||
|
portal:
|
||||||
|
image: git.woozle.org/neale/portal
|
||||||
|
configs:
|
||||||
|
- source: portal.json
|
||||||
|
target: /web/portal.json
|
||||||
|
- source: deergrove.png
|
||||||
|
target: /web/portal.png
|
||||||
|
|
||||||
jellyfin:
|
jellyfin:
|
||||||
image: jellyfin/jellyfin
|
image: jellyfin/jellyfin
|
||||||
deploy:
|
deploy:
|
||||||
|
@ -194,17 +190,20 @@ services:
|
||||||
source: /srv/incoming
|
source: /srv/incoming
|
||||||
target: /srv/incoming
|
target: /srv/incoming
|
||||||
|
|
||||||
forgejo:
|
gitea:
|
||||||
image: codeberg.org/forgejo/forgejo:1.18-rootless
|
image: codeberg.org/forgejo/forgejo:1.18-rootless
|
||||||
secrets:
|
secrets:
|
||||||
- source: forgejo.ini
|
- source: gitea.ini
|
||||||
target: /etc/gitea/app.ini
|
target: /etc/gitea/app.ini
|
||||||
uid: "1000"
|
uid: "1000"
|
||||||
gid: "1000"
|
gid: "1000"
|
||||||
mode: 0400
|
mode: 0400
|
||||||
|
configs:
|
||||||
|
- source: gitea-robots.txt
|
||||||
|
target: /var/lib/gitea/custom/robots.txt
|
||||||
volumes:
|
volumes:
|
||||||
- type: bind
|
- type: bind
|
||||||
source: /srv/sys/forgejo
|
source: /srv/sys/gitea
|
||||||
target: /data
|
target: /data
|
||||||
- type: bind
|
- type: bind
|
||||||
source: /etc/timezone
|
source: /etc/timezone
|
||||||
|
@ -280,15 +279,22 @@ services:
|
||||||
target: 139
|
target: 139
|
||||||
- published: 445
|
- published: 445
|
||||||
target: 445
|
target: 445
|
||||||
webdav:
|
|
||||||
image: micromata/dave
|
webfs:
|
||||||
|
image: sigoden/dufs
|
||||||
volumes:
|
volumes:
|
||||||
- type: bind
|
- type: bind
|
||||||
source: /srv
|
source: /srv/storage
|
||||||
target: /data
|
target: /srv/storage
|
||||||
configs:
|
- type: bind
|
||||||
- source: dave.yaml
|
source: /srv/incoming
|
||||||
target: /config/config.yaml
|
target: /srv/incoming
|
||||||
|
- type: bind
|
||||||
|
source: /srv/media
|
||||||
|
target: /srv/media
|
||||||
|
command:
|
||||||
|
- -A
|
||||||
|
- /srv
|
||||||
user: "911:911"
|
user: "911:911"
|
||||||
|
|
||||||
ddns:
|
ddns:
|
||||||
|
@ -333,31 +339,22 @@ configs:
|
||||||
name: dave.yaml-v3
|
name: dave.yaml-v3
|
||||||
Corefile:
|
Corefile:
|
||||||
file: Corefile
|
file: Corefile
|
||||||
name: Corefile-v5
|
name: Corefile-v7
|
||||||
Caddyfile:
|
Caddyfile:
|
||||||
file: Caddyfile
|
file: Caddyfile
|
||||||
name: Caddyfile-v135
|
name: Caddyfile-v145
|
||||||
index.html:
|
|
||||||
file: www/index.html
|
|
||||||
name: index.html-v43
|
|
||||||
index.mjs:
|
|
||||||
file: www/index.mjs
|
|
||||||
name: index.mjs-v14
|
|
||||||
index.css:
|
|
||||||
file: www/index.css
|
|
||||||
name: index.css-v2
|
|
||||||
portal.json:
|
portal.json:
|
||||||
file: portal.json
|
file: portal.json
|
||||||
name: portal.json-v3
|
name: portal.json-v6
|
||||||
browser.html:
|
|
||||||
file: www/browser.html
|
|
||||||
name: browser.html-v3
|
|
||||||
deergrove.png:
|
deergrove.png:
|
||||||
file: www/deergrove.png
|
file: www/deergrove.png
|
||||||
name: deergrove.png-v1
|
name: deergrove.png-v1
|
||||||
netdata.conf:
|
netdata.conf:
|
||||||
file: netdata.conf
|
file: netdata.conf
|
||||||
name: netdata.conf-v1
|
name: netdata.conf-v1
|
||||||
|
gitea-robots.txt:
|
||||||
|
file: gitea-robots.txt
|
||||||
|
name: gitea-robots.txt-v1
|
||||||
|
|
||||||
secrets:
|
secrets:
|
||||||
passwd:
|
passwd:
|
||||||
|
@ -372,9 +369,9 @@ secrets:
|
||||||
known_hosts:
|
known_hosts:
|
||||||
file: secrets/known_hosts
|
file: secrets/known_hosts
|
||||||
name: known_hosts-v1
|
name: known_hosts-v1
|
||||||
forgejo.ini:
|
gitea.ini:
|
||||||
file: secrets/forgejo.ini
|
file: secrets/gitea.ini
|
||||||
name: forgejo.ini-v4
|
name: gitea.ini-v4
|
||||||
jwt.secret:
|
jwt.secret:
|
||||||
file: secrets/jwt.secret
|
file: secrets/jwt.secret
|
||||||
name: jwt.secret-v1
|
name: jwt.secret-v1
|
||||||
|
@ -395,5 +392,3 @@ networks:
|
||||||
hostnet:
|
hostnet:
|
||||||
external: true
|
external: true
|
||||||
name: host
|
name: host
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,38 +1,62 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
"title": "Storage",
|
||||||
|
"href": "https://drive.woozle.org/",
|
||||||
|
"icon": "https://drive.woozle.org/storage/public/icons/cloud-folder.png",
|
||||||
|
"target": "_blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Photos",
|
||||||
|
"href": "https://photos.woozle.org/",
|
||||||
|
"icon": "https://photos.woozle.org/assets/icon_inv.png",
|
||||||
|
"target": "_blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Git",
|
||||||
|
"href": "https://git.woozle.org/",
|
||||||
|
"icon": "https://git.woozle.org/assets/img/logo.svg",
|
||||||
|
"target": "_blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Genealogy",
|
||||||
|
"href": "https://ancestry.woozle.org/",
|
||||||
|
"icon": "https://ancestry.woozle.org/images/arbre_start.png",
|
||||||
|
"target": "_blank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Movies",
|
||||||
"href": "https://deergrove.woozle.org/radarr/",
|
"href": "https://deergrove.woozle.org/radarr/",
|
||||||
"icon": "/radarr/Content/Images/logo.svg",
|
"icon": "/radarr/Content/Images/logo.svg"
|
||||||
"title": "Movies"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Episodes",
|
||||||
"href": "https://deergrove.woozle.org/sonarr/",
|
"href": "https://deergrove.woozle.org/sonarr/",
|
||||||
"icon": "/sonarr/Content/Images/logo.svg",
|
"icon": "/sonarr/Content/Images/logo.svg"
|
||||||
"title": "Episodes"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Music",
|
||||||
"href": "https://deergrove.woozle.org/lidarr/",
|
"href": "https://deergrove.woozle.org/lidarr/",
|
||||||
"icon": "/lidarr/Content/Images/logo.svg",
|
"icon": "/lidarr/Content/Images/logo.svg"
|
||||||
"title": "Music"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Books",
|
||||||
"href": "https://deergrove.woozle.org/readarr/",
|
"href": "https://deergrove.woozle.org/readarr/",
|
||||||
"icon": "/readarr/Content/Images/logo.svg",
|
"icon": "/readarr/Content/Images/logo.svg"
|
||||||
"title": "Books"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Media Sucker",
|
||||||
"href": "https://deergrove.woozle.org/sucker/",
|
"href": "https://deergrove.woozle.org/sucker/",
|
||||||
"icon": "/sucker/cd-dvd.svg",
|
"icon": "/sucker/cd-dvd.svg"
|
||||||
"title": "Media Sucker"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Searcher",
|
||||||
"href": "https://deergrove.woozle.org/prowlarr/",
|
"href": "https://deergrove.woozle.org/prowlarr/",
|
||||||
"icon": "/prowlarr/Content/Images/logo.png",
|
"icon": "/prowlarr/Content/Images/logo.png"
|
||||||
"title": "Searcher"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Usenet",
|
||||||
"href": "https://deergrove.woozle.org/nzbget/",
|
"href": "https://deergrove.woozle.org/nzbget/",
|
||||||
"icon": "/nzbget/img/favicon-256x256.png",
|
"icon": "/nzbget/img/favicon-256x256.png"
|
||||||
"title": "Usenet"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "BitTorrent",
|
"title": "BitTorrent",
|
||||||
|
@ -40,31 +64,13 @@
|
||||||
"icon": "/transmission/web/images/webclip-icon.png"
|
"icon": "/transmission/web/images/webclip-icon.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "3D Printer",
|
||||||
"href": "https://deergrove.woozle.org/octoprint/",
|
"href": "https://deergrove.woozle.org/octoprint/",
|
||||||
"icon": "/octoprint/static/img/logo.png",
|
"icon": "/octoprint/static/img/logo.png"
|
||||||
"title": "3D Printer"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"href": "https://git.woozle.org/",
|
"title": "Host Stats",
|
||||||
"icon": "https://git.woozle.org/assets/img/logo.svg",
|
"href": "/stat.html",
|
||||||
"title": "Git",
|
"app": "stat"
|
||||||
"target": "_blank"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"href": "https://drive.woozle.org/",
|
|
||||||
"icon": "https://drive.woozle.org/storage/public/icons/cloud-folder.png",
|
|
||||||
"title": "Storage",
|
|
||||||
"target": "_blank"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"href": "https://ancestry.woozle.org/",
|
|
||||||
"icon": "https://ancestry.woozle.org/images/arbre_start.png",
|
|
||||||
"title": "Genealogy",
|
|
||||||
"target": "_blank"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"href": "https://auth.woozle.org/logout/",
|
|
||||||
"title": "Logout",
|
|
||||||
"target": "_top"
|
|
||||||
}
|
}
|
||||||
]
|
}
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Woozle Drive</title>
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/dom111/webdav-js/assets/css/style-min.css">
|
|
||||||
<script>
|
|
||||||
function init() {
|
|
||||||
// This is dumb, but webdav-min.js doesn't have any checks to make sure the document is loaded.
|
|
||||||
let scr = document.head.appendChild(document.createElement("script"))
|
|
||||||
scr.src = "https://cdn.jsdelivr.net/gh/dom111/webdav-js/src/webdav-min.js"
|
|
||||||
|
|
||||||
for (let e of document.querySelectorAll(".listing")) {
|
|
||||||
console.log("Let's pray the WebDAV stuff works!", e)
|
|
||||||
e.remove()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (document.readyState === "loading") {
|
|
||||||
document.addEventListener("DOMContentLoaded", init)
|
|
||||||
} else {
|
|
||||||
init()
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<ul class="listing">
|
|
||||||
{{range .Items}}
|
|
||||||
<li>
|
|
||||||
<a href="{{html .URL}}">{{html .Name}}</a>
|
|
||||||
<span class="size" data-value="{{.Size}}">{{.HumanSize}}</span>
|
|
||||||
<time>{{.HumanModTime "2006-01-02T15:04:05Z"}}</time>
|
|
||||||
</li>
|
|
||||||
{{end}}
|
|
||||||
</ul>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Loading…
Reference in New Issue