Custom build wg-easy
This commit is contained in:
parent
c90cd28488
commit
2bf8c374f6
17 changed files with 14638 additions and 180 deletions
11
apps/busybox/config.json
Normal file
11
apps/busybox/config.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"name": "BusyBox",
|
||||||
|
"port": 3000,
|
||||||
|
"id": "busybox",
|
||||||
|
"description": "",
|
||||||
|
"short_desc": "",
|
||||||
|
"author": "",
|
||||||
|
"source": "",
|
||||||
|
"image": "https://raw.githubusercontent.com/docker-library/docs/cc5d5e47fd7e0c57c9b8de4c1bfb6258e0dac85d/busybox/logo.png",
|
||||||
|
"form_fields": {}
|
||||||
|
}
|
6
apps/busybox/docker-compose.yml
Normal file
6
apps/busybox/docker-compose.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
version: "3.7"
|
||||||
|
services:
|
||||||
|
test:
|
||||||
|
image: meienberger/ubuntu-test
|
||||||
|
networks:
|
||||||
|
- tipi_main_network
|
|
@ -14,7 +14,7 @@ services:
|
||||||
|
|
||||||
filerun:
|
filerun:
|
||||||
container_name: filerun
|
container_name: filerun
|
||||||
image: filerun/filerun
|
image: filerun/filerun:arm64v8
|
||||||
environment:
|
environment:
|
||||||
FR_DB_HOST: filerun-db
|
FR_DB_HOST: filerun-db
|
||||||
FR_DB_PORT: 3306
|
FR_DB_PORT: 3306
|
||||||
|
@ -36,4 +36,3 @@ services:
|
||||||
- ${ROOT_FOLDER}/app-data:/user-files
|
- ${ROOT_FOLDER}/app-data:/user-files
|
||||||
networks:
|
networks:
|
||||||
- tipi_main_network
|
- tipi_main_network
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
"author": "",
|
"author": "",
|
||||||
"source": "",
|
"source": "",
|
||||||
"image": "https://avatars.githubusercontent.com/u/25025331?s=200&v=4",
|
"image": "https://avatars.githubusercontent.com/u/25025331?s=200&v=4",
|
||||||
"dependencies": ["transmission"],
|
|
||||||
"form_fields": {
|
"form_fields": {
|
||||||
"torrent-client": {
|
"torrent-client": {
|
||||||
"type": "text",
|
"type": "text",
|
||||||
|
@ -16,14 +15,6 @@
|
||||||
"min": 3,
|
"min": 3,
|
||||||
"required": true,
|
"required": true,
|
||||||
"env_variable": "TORRENT_CLIENT"
|
"env_variable": "TORRENT_CLIENT"
|
||||||
},
|
|
||||||
"test": {
|
|
||||||
"type": "text",
|
|
||||||
"label": "testvar",
|
|
||||||
"max": 50,
|
|
||||||
"min": 3,
|
|
||||||
"required": true,
|
|
||||||
"env_variable": "TEST_VAR"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ services:
|
||||||
environment:
|
environment:
|
||||||
- PUID=1000
|
- PUID=1000
|
||||||
- PGID=1000
|
- PGID=1000
|
||||||
- TZ=Europe/London
|
- TZ=${TZ}
|
||||||
- AUTO_UPDATE=true
|
- AUTO_UPDATE=true
|
||||||
volumes:
|
volumes:
|
||||||
- ${APP_DATA_DIR}/data/config:/config
|
- ${APP_DATA_DIR}/data/config:/config
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
version: '3.7'
|
|
||||||
services:
|
|
||||||
test:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
networks:
|
|
||||||
- tipi_main_network
|
|
|
@ -12,7 +12,7 @@
|
||||||
"image": "https://avatars.githubusercontent.com/u/13991055?s=200&v=4",
|
"image": "https://avatars.githubusercontent.com/u/13991055?s=200&v=4",
|
||||||
"form_fields": {
|
"form_fields": {
|
||||||
"host": {
|
"host": {
|
||||||
"type": "ip",
|
"type": "fqdnip",
|
||||||
"label": "Your public IP address or domain name",
|
"label": "Your public IP address or domain name",
|
||||||
"required": true,
|
"required": true,
|
||||||
"env_variable": "WIREGUARD_HOST"
|
"env_variable": "WIREGUARD_HOST"
|
||||||
|
|
|
@ -1,25 +1,28 @@
|
||||||
version: '3.7'
|
version: "3.7"
|
||||||
services:
|
services:
|
||||||
wg-easy:
|
wg-easy:
|
||||||
container_name: wg-easy
|
container_name: wg-easy
|
||||||
image: 'weejewel/wg-easy:latest'
|
image: "meienberger/wg-easy:latest"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
network_mode: "host"
|
||||||
volumes:
|
volumes:
|
||||||
- ${APP_DATA_DIR}:/etc/wireguard
|
- ${APP_DATA_DIR}:/etc/wireguard
|
||||||
|
- /lib/modules:/lib/modules
|
||||||
ports:
|
ports:
|
||||||
- 51820:51820
|
- 51820:51820/udp
|
||||||
- ${APP_PORT}:51821
|
- ${APP_PORT}:51821
|
||||||
environment:
|
environment:
|
||||||
WG_HOST: '${WIREGUARD_HOST}'
|
WG_HOST: "${WIREGUARD_HOST}"
|
||||||
PASSWORD: '${WIREGUARD_PASSWORD}'
|
PASSWORD: "${WIREGUARD_PASSWORD}"
|
||||||
|
WG_DEFAULT_DNS: 8.8.8.8
|
||||||
|
WG_ALLOWED_IPS: 0.0.0.0/0,::/0
|
||||||
|
WG_FWMARK: 51820
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN
|
- NET_ADMIN
|
||||||
- SYS_MODULE
|
- SYS_MODULE
|
||||||
sysctls:
|
# sysctls:
|
||||||
- net.ipv4.conf.all.src_valid_mark=1
|
# - net.ipv4.conf.all.src_valid_mark=1
|
||||||
- net.ipv4.ip_forward=1
|
# - net.ipv4.ip_forward=1
|
||||||
networks:
|
|
||||||
- tipi_main_network
|
|
||||||
# labels:
|
# labels:
|
||||||
# traefik.enable: true
|
# traefik.enable: true
|
||||||
# traefik.http.routers.wireguard.rule: Host(`wireguard.tipi.home`)
|
# traefik.http.routers.wireguard.rule: Host(`wireguard.tipi.home`)
|
||||||
|
|
|
@ -19,6 +19,8 @@ export const validateAppConfig = (values: Record<string, string>, fields: (AppCo
|
||||||
errors[field.id] = 'Field must be a valid domain';
|
errors[field.id] = 'Field must be a valid domain';
|
||||||
} else if (values[field.id] && field.type === FieldTypes.ip && !validator.isIP(values[field.id])) {
|
} else if (values[field.id] && field.type === FieldTypes.ip && !validator.isIP(values[field.id])) {
|
||||||
errors[field.id] = 'Field must be a valid IP address';
|
errors[field.id] = 'Field must be a valid IP address';
|
||||||
|
} else if (values[field.id] && field.type === FieldTypes.fqdnip && !validator.isFQDN(values[field.id] || '') && !validator.isIP(values[field.id])) {
|
||||||
|
errors[field.id] = 'Field must be a valid domain or IP address';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import axios, { Method } from 'axios';
|
import axios, { Method } from 'axios';
|
||||||
|
|
||||||
const BASE_URL = 'http://localhost:3001';
|
export const BASE_URL = 'http://192.168.2.146:3001';
|
||||||
|
|
||||||
interface IFetchParams {
|
interface IFetchParams {
|
||||||
endpoint: string;
|
endpoint: string;
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import { BareFetcher } from 'swr';
|
import { BareFetcher } from 'swr';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
import { BASE_URL } from './api';
|
||||||
|
|
||||||
const fetcher: BareFetcher<any> = (url: string) => {
|
const fetcher: BareFetcher<any> = (url: string) => {
|
||||||
return axios.get(url, { baseURL: 'http://localhost:3001' }).then((res) => res.data);
|
return axios.get(url, { baseURL: BASE_URL }).then((res) => res.data);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default fetcher;
|
export default fetcher;
|
||||||
|
|
|
@ -5,6 +5,7 @@ export enum FieldTypes {
|
||||||
number = 'number',
|
number = 'number',
|
||||||
fqdn = 'fqdn',
|
fqdn = 'fqdn',
|
||||||
ip = 'ip',
|
ip = 'ip',
|
||||||
|
fqdnip = 'fqdnip',
|
||||||
}
|
}
|
||||||
|
|
||||||
interface FormField {
|
interface FormField {
|
||||||
|
|
|
@ -118,7 +118,7 @@ fi
|
||||||
# Removes images and destroys all data for an app
|
# Removes images and destroys all data for an app
|
||||||
if [[ "$command" = "uninstall" ]]; then
|
if [[ "$command" = "uninstall" ]]; then
|
||||||
echo "Removing images for app ${app}..."
|
echo "Removing images for app ${app}..."
|
||||||
compose "${app}" down --rmi all --remove-orphans
|
compose "${app}" down --remove-orphans
|
||||||
|
|
||||||
echo "Deleting app data for app ${app}..."
|
echo "Deleting app data for app ${app}..."
|
||||||
if [[ -d "${app_data_dir}" ]]; then
|
if [[ -d "${app_data_dir}" ]]; then
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"installed":" transmission filerun anonaddy","environment":{"anonaddy":{}}}
|
{"installed":"transmission wg-easy jellyfin radarr filerun nextcloud busybox","environment":{"anonaddy":{}}}
|
14702
system-api/package-lock.json
generated
14702
system-api/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -1 +1 @@
|
||||||
export const appNames = ['nextcloud', 'freshrss', 'anonaddy', 'filerun', 'wg-easy', 'radarr', 'transmission', 'jellyfin', 'pi-hole'];
|
export const appNames = ['nextcloud', 'freshrss', 'anonaddy', 'filerun', 'wg-easy', 'radarr', 'transmission', 'jellyfin', 'pi-hole', 'busybox'];
|
||||||
|
|
Loading…
Add table
Reference in a new issue