add keeweb
This commit is contained in:
6
env/.env
vendored
6
env/.env
vendored
@ -171,6 +171,12 @@ DOKUWIKI_ACTIVATE=0
|
||||
DOKUWIKI_LOCAL=1
|
||||
DOKUWIKI_URL=${PROTOCOLE}://${WEB_URL}/dokuwiki
|
||||
|
||||
# KEEWEB
|
||||
KEEWEB_SERVICE_NAME=keeweb
|
||||
KEEWEB_ACTIVATE=0
|
||||
KEEWEB_LOCAL=1
|
||||
KEEWEB_URL=${PROTOCOLE}://${WEB_URL}/keeweb
|
||||
|
||||
# KOMGA
|
||||
KOMGA_SERVICE_NAME=komga
|
||||
KOMGA_ACTIVATE=0
|
||||
|
32
misc/images/keeweb/containers/Dockerfile
Executable file
32
misc/images/keeweb/containers/Dockerfile
Executable file
@ -0,0 +1,32 @@
|
||||
FROM reg.cadoles.com/envole/nineapache:8.2
|
||||
|
||||
USER root
|
||||
|
||||
# Installe Node.js + npm
|
||||
RUN apk add --no-cache nodejs npm
|
||||
|
||||
# Crée le dossier de l'app
|
||||
WORKDIR /app
|
||||
|
||||
# Installe webdav-server localement (dans /app/node_modules)
|
||||
RUN npm install webdav-server@2
|
||||
|
||||
# Copie ton script WebDAV dans /app
|
||||
COPY webdav.js /app/webdav.js
|
||||
|
||||
# Installe KeeWeb
|
||||
RUN curl -L https://github.com/keeweb/keeweb/releases/download/v1.18.7/KeeWeb-1.18.7.html.zip -o /tmp/keeweb.zip \
|
||||
&& unzip /tmp/keeweb.zip -d /app/public \
|
||||
&& sed -i 's|<base href="/"|<base href="/keeweb/"|' /app/public/index.html \
|
||||
&& mv /app/public/index.html /app/public/index.php
|
||||
|
||||
# Crée le dossier de stockage
|
||||
RUN mkdir -p /data && chown apache:apache /data
|
||||
|
||||
# Copie la conf Apache
|
||||
COPY apache.conf /etc/apache2/conf.d/zapp.conf
|
||||
|
||||
# Démarre Apache + WebDAV
|
||||
USER apache
|
||||
ENV NODE_PATH=/app/node_modules
|
||||
CMD sh -c "node /app/webdav.js & httpd -D FOREGROUND"
|
16
misc/images/keeweb/containers/apache.conf
Normal file
16
misc/images/keeweb/containers/apache.conf
Normal file
@ -0,0 +1,16 @@
|
||||
ServerName nineapache.local
|
||||
DocumentRoot "/app/public"
|
||||
|
||||
Alias /keeweb /app/public
|
||||
|
||||
<Location "/keeweb/webdav">
|
||||
ProxyPass http://127.0.0.1:9999/
|
||||
ProxyPassReverse http://127.0.0.1:9999/
|
||||
</Location>
|
||||
|
||||
<Directory "/app/public">
|
||||
Options FollowSymLinks
|
||||
AllowOverride Limit Options FileInfo
|
||||
DirectoryIndex index.php
|
||||
Require all granted
|
||||
</Directory>
|
21
misc/images/keeweb/containers/webdav.js
Normal file
21
misc/images/keeweb/containers/webdav.js
Normal file
@ -0,0 +1,21 @@
|
||||
const webdav = require('webdav-server').v2;
|
||||
|
||||
const adminUser = process.env.WEBDAV_USER || 'admin';
|
||||
const adminPass = process.env.WEBDAV_PASS || 'password';
|
||||
|
||||
const userManager = new webdav.SimpleUserManager();
|
||||
const user = userManager.addUser(adminUser, adminPass, false); // false = pas admin système
|
||||
|
||||
const privilegeManager = new webdav.SimplePathPrivilegeManager();
|
||||
|
||||
const server = new webdav.WebDAVServer({
|
||||
port: 9999,
|
||||
hostname: '0.0.0.0',
|
||||
httpAuthentication: new webdav.HTTPBasicAuthentication(userManager, 'default realm'),
|
||||
privilegeManager,
|
||||
rootFileSystem: new webdav.PhysicalFileSystem('/data')
|
||||
});
|
||||
|
||||
server.start(() => {
|
||||
console.log(`WebDAV server running at http://0.0.0.0:9999 as ${adminUser}`);
|
||||
});
|
14
misc/images/keeweb/docker-compose.yml
Executable file
14
misc/images/keeweb/docker-compose.yml
Executable file
@ -0,0 +1,14 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
keeweb:
|
||||
build:
|
||||
context: ./containers
|
||||
image: reg.cadoles.com/envole/keeweb
|
||||
container_name: keeweb
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
environment:
|
||||
WEBDAV_USER: tonuser
|
||||
WEBDAV_PASS: tonpassword
|
0
misc/images/keeweb/init.kdbx
Normal file
0
misc/images/keeweb/init.kdbx
Normal file
4
services/50-keeweb/apache/apache.conf
Normal file
4
services/50-keeweb/apache/apache.conf
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
# Keeweb
|
||||
ProxyPass /keeweb http://keeweb retry=0 keepalive=On
|
||||
ProxyPassReverse /keeweb http://keeweb retry=0
|
13
services/50-keeweb/dockercompose/dockercompose.yml
Normal file
13
services/50-keeweb/dockercompose/dockercompose.yml
Normal file
@ -0,0 +1,13 @@
|
||||
services:
|
||||
# keeweb
|
||||
# interface Web pour KeePass
|
||||
# Port interne 80
|
||||
keeweb:
|
||||
image: reg.cadoles.com/envole/keeweb
|
||||
container_name: nine-keeweb
|
||||
restart: unless-stopped
|
||||
env_file: ./services/50-keeweb/env/.env.merge
|
||||
networks:
|
||||
- nine-network
|
||||
volumes:
|
||||
- ./services/50-keeweb/volume/data:/web
|
5
services/50-keeweb/env/.env
vendored
Normal file
5
services/50-keeweb/env/.env
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
# == KEEWEB =================================================================================================================================
|
||||
|
||||
WEBDAV_USER=${ADMIN_USER}
|
||||
WEBDAV_PASS=${ADMIN_PASSWORD}
|
36
services/50-keeweb/misc/nine.sh
Normal file
36
services/50-keeweb/misc/nine.sh
Normal file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
function upkeeweb {
|
||||
if [[ $KEEWEB_ACTIVATE == 1 && $KEEWEB_LOCAL == 1 ]]
|
||||
then
|
||||
Title ${KEEWEB_SERVICE_NAME^^}
|
||||
|
||||
EchoVert "CONTAINER"
|
||||
upservice ${KEEWEB_SERVICE_NAME}
|
||||
chmod -R a+wr ./services/50-keeweb/volume/data
|
||||
Echo
|
||||
fi
|
||||
}
|
||||
|
||||
function destroykeeweb {
|
||||
if [[ $KEEWEB_LOCAL == 1 ]]
|
||||
then
|
||||
Title "DESTROY $KEEWEB_SERVICE_NAME"
|
||||
|
||||
stop $KEEWEB_SERVICE_NAME 1
|
||||
docker-compose rm -s -v -f "$KEEWEB_SERVICE_NAME"
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
Question_ouinon "Souhaitez-vous supprimer le volume associé à $KEEWEB_SERVICE_NAME ?";
|
||||
response=$?
|
||||
fi
|
||||
if [[ "$response" == 0 || ! -z $1 ]]
|
||||
then
|
||||
EchoRouge "Delete Volume = $KEEWEB_SERVICE_NAME"
|
||||
rm -rf services/50-keeweb/volume/data
|
||||
fi
|
||||
|
||||
echo ""
|
||||
fi
|
||||
}
|
Reference in New Issue
Block a user