Found a better drive app
This commit is contained in:
parent
befbffb12e
commit
e32e4f586f
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -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