Found a better drive app

This commit is contained in:
Neale Pickett 2023-04-02 21:34:26 -06:00
parent befbffb12e
commit e32e4f586f
5 changed files with 85 additions and 134 deletions

View File

@ -12,24 +12,12 @@
}
git.woozle.org {
reverse_proxy forgejo:3000
reverse_proxy gitea:3000
}
drive.woozle.org {
import restricted-access
# 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
}
reverse_proxy webfs:5000
}
media.woozle.org {
@ -104,8 +92,6 @@ deergrove.woozle.org {
}
handle {
file_server {
root /www
}
reverse_proxy portal:8080
}
}

View File

@ -1,7 +1,7 @@
. {
bind 192.168.86.2
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
}
forward . 8.8.8.8

View File

@ -28,18 +28,6 @@ services:
configs:
- source: 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:
- host.docker.internal:host-gateway
- host.lan:192.168.86.2
@ -50,6 +38,14 @@ services:
- passwd
- 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:
image: jellyfin/jellyfin
deploy:
@ -194,17 +190,20 @@ services:
source: /srv/incoming
target: /srv/incoming
forgejo:
gitea:
image: codeberg.org/forgejo/forgejo:1.18-rootless
secrets:
- source: forgejo.ini
- source: gitea.ini
target: /etc/gitea/app.ini
uid: "1000"
gid: "1000"
mode: 0400
configs:
- source: gitea-robots.txt
target: /var/lib/gitea/custom/robots.txt
volumes:
- type: bind
source: /srv/sys/forgejo
source: /srv/sys/gitea
target: /data
- type: bind
source: /etc/timezone
@ -280,15 +279,22 @@ services:
target: 139
- published: 445
target: 445
webdav:
image: micromata/dave
webfs:
image: sigoden/dufs
volumes:
- type: bind
source: /srv
target: /data
configs:
- source: dave.yaml
target: /config/config.yaml
source: /srv/storage
target: /srv/storage
- type: bind
source: /srv/incoming
target: /srv/incoming
- type: bind
source: /srv/media
target: /srv/media
command:
- -A
- /srv
user: "911:911"
ddns:
@ -333,31 +339,22 @@ configs:
name: dave.yaml-v3
Corefile:
file: Corefile
name: Corefile-v5
name: Corefile-v7
Caddyfile:
file: Caddyfile
name: Caddyfile-v135
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
name: Caddyfile-v145
portal.json:
file: portal.json
name: portal.json-v3
browser.html:
file: www/browser.html
name: browser.html-v3
name: portal.json-v6
deergrove.png:
file: www/deergrove.png
name: deergrove.png-v1
netdata.conf:
file: netdata.conf
name: netdata.conf-v1
gitea-robots.txt:
file: gitea-robots.txt
name: gitea-robots.txt-v1
secrets:
passwd:
@ -372,9 +369,9 @@ secrets:
known_hosts:
file: secrets/known_hosts
name: known_hosts-v1
forgejo.ini:
file: secrets/forgejo.ini
name: forgejo.ini-v4
gitea.ini:
file: secrets/gitea.ini
name: gitea.ini-v4
jwt.secret:
file: secrets/jwt.secret
name: jwt.secret-v1
@ -395,5 +392,3 @@ networks:
hostnet:
external: true
name: host

View File

@ -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/",
"icon": "/radarr/Content/Images/logo.svg",
"title": "Movies"
"icon": "/radarr/Content/Images/logo.svg"
},
{
"title": "Episodes",
"href": "https://deergrove.woozle.org/sonarr/",
"icon": "/sonarr/Content/Images/logo.svg",
"title": "Episodes"
"icon": "/sonarr/Content/Images/logo.svg"
},
{
"title": "Music",
"href": "https://deergrove.woozle.org/lidarr/",
"icon": "/lidarr/Content/Images/logo.svg",
"title": "Music"
"icon": "/lidarr/Content/Images/logo.svg"
},
{
"title": "Books",
"href": "https://deergrove.woozle.org/readarr/",
"icon": "/readarr/Content/Images/logo.svg",
"title": "Books"
"icon": "/readarr/Content/Images/logo.svg"
},
{
"title": "Media Sucker",
"href": "https://deergrove.woozle.org/sucker/",
"icon": "/sucker/cd-dvd.svg",
"title": "Media Sucker"
"icon": "/sucker/cd-dvd.svg"
},
{
"title": "Searcher",
"href": "https://deergrove.woozle.org/prowlarr/",
"icon": "/prowlarr/Content/Images/logo.png",
"title": "Searcher"
"icon": "/prowlarr/Content/Images/logo.png"
},
{
"title": "Usenet",
"href": "https://deergrove.woozle.org/nzbget/",
"icon": "/nzbget/img/favicon-256x256.png",
"title": "Usenet"
"icon": "/nzbget/img/favicon-256x256.png"
},
{
"title": "BitTorrent",
@ -40,31 +64,13 @@
"icon": "/transmission/web/images/webclip-icon.png"
},
{
"title": "3D Printer",
"href": "https://deergrove.woozle.org/octoprint/",
"icon": "/octoprint/static/img/logo.png",
"title": "3D Printer"
"icon": "/octoprint/static/img/logo.png"
},
{
"href": "https://git.woozle.org/",
"icon": "https://git.woozle.org/assets/img/logo.svg",
"title": "Git",
"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"
"title": "Host Stats",
"href": "/stat.html",
"app": "stat"
}
]
}

View File

@ -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>