Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d40c4569e4 | ||
|
|
b8480cc1fb |
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
VPN_DNS_IP: MTAuMi4wLjE=
|
||||||
|
VPN_ENDPOINT_IP: MjEyLjguMjUzLjEzNw==
|
||||||
|
VPN_ENDPOINT_PORT: NTE4MjA=
|
||||||
|
WIREGUARD_PRIVATE_KEY: Y0grY0hLd3FMeXV3UlVlZy8wRjFYWVlDQVM4bkQwWGsxNmVOQlVLc2tYbz0=
|
||||||
|
WIREGUARD_PUBLIC_KEY: VVJwZVp4dHlVWEFVVUEwTVdjRmRDU2E3RitNdmNoSjRlTlNKVWV0S0VHaz0=
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
name: gluetun-secret-netherland
|
||||||
|
namespace: gluetun
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
DB_DATABASE: Ym9va3N0YWNrYXBw
|
||||||
|
# DB_HOST: ZGIuYm9va3N0YWNrLnN2Yw==
|
||||||
|
DB_HOST: Ym9va3N0YWNrLWRiLXN2Yw==
|
||||||
|
DB_PASS: VW5oYXBweS1Db21tZW5jZS1FdmVyeW9uZTQ=
|
||||||
|
DB_USER: Ym9va3N0YWNrX3VzZXJuYW1l
|
||||||
|
APP_KEY: "N3dvdmU3ZDQwbjlyNm90YW43ZGEyODQ5am10ajlqNHU="
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
# creationTimestamp: "2024-06-13T07:37:49Z"
|
||||||
|
name: bookstack-credentials
|
||||||
|
namespace: bookstack
|
||||||
|
# resourceVersion: "20756717"
|
||||||
|
# uid: 66d4cc7d-741a-49cc-979d-a8b95ffb983a
|
||||||
|
type: Opaque
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: database
|
||||||
|
namespace: servarr
|
||||||
|
annotations:
|
||||||
|
spec:
|
||||||
|
ipFamilyPolicy: PreferDualStack
|
||||||
|
ports:
|
||||||
|
- name: tcp
|
||||||
|
port: 5432
|
||||||
|
targetPort: 5432
|
||||||
|
protocol: TCP
|
||||||
|
|
||||||
|
type: LoadBalancer
|
||||||
|
selector:
|
||||||
|
app: prowlarr-db
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
DB_DATABASE: cHJvd2xhcnItbWFpbg==
|
||||||
|
DB_HOST: cHJvd2xhcnItZGItc3Zj
|
||||||
|
DB_PASS: R29saWF0aC1EZWVwZW4tRGl2aWRpbmc3
|
||||||
|
DB_USER: cHJvd2xhcnJfdXNlcm5hbWU=
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
name: prowlarr-credentials
|
||||||
|
namespace: bookstack
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
DB_DATABASE: cHJvd2xhcnItbWFpbg==
|
||||||
|
DB_HOST: cHJvd2xhcnItZGItc3Zj
|
||||||
|
DB_PASS: R29saWF0aC1EZWVwZW4tRGl2aWRpbmc3
|
||||||
|
DB_USER: c2VydmFycl91c2VybmFtZQ==
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
name: servarr-db-credentials
|
||||||
|
namespace: servarr
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#install required packages
|
||||||
|
apk add curl wget
|
||||||
|
|
||||||
|
#named argument generation
|
||||||
|
skip_searching_gallery="${skip_searching_gallery:-false}"
|
||||||
|
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
if [[ $1 == "--"* ]]; then
|
||||||
|
v="${1/--/}"
|
||||||
|
declare "$v"="$2"
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
#check if we will use a HTTP proxy or not
|
||||||
|
|
||||||
|
if [[ -z $http_proxy ]]; then
|
||||||
|
echo "not using proxy"
|
||||||
|
curl_command="curl"
|
||||||
|
else
|
||||||
|
echo "using proxy"
|
||||||
|
curl_command="curl -x $http_proxy"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#dowload from https://www.pornpics.com/pornstars/eiby-shine/
|
||||||
|
DESTINATION_FOLDER="/data"
|
||||||
|
PROXY_HTTP="http://gluetun-svc.gluetun.svc:8888"
|
||||||
|
|
||||||
|
#BASE_URL="https://www.pornpics.com/pornstars/eiby-shine/"
|
||||||
|
#pornstars="eiby-shine"
|
||||||
|
|
||||||
|
BASE_URL="https://www.pornpics.com/?q=shy+imp"
|
||||||
|
pornstars="shy-imp"
|
||||||
|
|
||||||
|
#BASE_URL="https://www.pornpics.com/pornstars/becky-summer"
|
||||||
|
#pornstars="becky-summer"
|
||||||
|
|
||||||
|
|
||||||
|
#clear files beforehand
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p $DESTINATION_FOLDER/$pornstars
|
||||||
|
|
||||||
|
if [[ $skip_searching_gallery == true ]]; then
|
||||||
|
echo "not looping through galleries"
|
||||||
|
echo "using existing file instead"
|
||||||
|
#because we need to keep the file $DESTINATION_FOLDER/$pornstars-urls_of_galleries.txt with the existing URL , in this condition,
|
||||||
|
#no deletion of this file
|
||||||
|
else
|
||||||
|
echo "looping through galleries"
|
||||||
|
#because we will re-generate this file, can be emptied
|
||||||
|
echo "" > $DESTINATION_FOLDER/$pornstars-urls_of_galleries.txt
|
||||||
|
$curl_command -s $BASE_URL | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" | grep "https://www.pornpics.com/galleries/" |sort -u >> $DESTINATION_FOLDER/$pornstars-urls_of_galleries.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "" > $DESTINATION_FOLDER/$pornstars-image_to_download.txt
|
||||||
|
|
||||||
|
|
||||||
|
for f in $(cat $DESTINATION_FOLDER/$pornstars-urls_of_galleries.txt ); do
|
||||||
|
$curl_command $f | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" | grep "https://cdni.pornpics.com/1280" >> $DESTINATION_FOLDER/$pornstars-image_to_download.txt
|
||||||
|
echo $f
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
for g in $(cat $DESTINATION_FOLDER/$pornstars-image_to_download.txt ); do
|
||||||
|
$curl_command -O --output-dir $DESTINATION_FOLDER/$pornstars $g
|
||||||
|
# wget -e use_proxy=yes -e http_proxy=$PROXY_HTTP $g -P $DESTINATION_FOLDER/$pornstars
|
||||||
|
echo $g
|
||||||
|
done
|
||||||
|
exit 0
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
VPN_DNS_IP: MTAuMi4wLjE=
|
||||||
|
VPN_ENDPOINT_IP: MjEyLjguMjUzLjEzNw==
|
||||||
|
VPN_ENDPOINT_PORT: NTE4MjA=
|
||||||
|
WIREGUARD_PRIVATE_KEY: Y0grY0hLd3FMeXV3UlVlZy8wRjFYWVlDQVM4bkQwWGsxNmVOQlVLc2tYbz0=
|
||||||
|
WIREGUARD_PUBLIC_KEY: VVJwZVp4dHlVWEFVVUEwTVdjRmRDU2E3RitNdmNoSjRlTlNKVWV0S0VHaz0=
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
name: gluetun-secret-netherland
|
||||||
|
namespace: stash
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
download.sh: "#!/bin/bash\n\n#install required packages\napk add curl wget\n\n#named
|
||||||
|
argument generation\nskip_searching_gallery=\"${skip_searching_gallery:-false}\"\n\n\nwhile
|
||||||
|
[ $# -gt 0 ]; do\n if [[ $1 == \"--\"* ]]; then\n v=\"${1/--/}\"\n declare
|
||||||
|
\"$v\"=\"$2\"\n shift\n fi\n shift\ndone\n\n#check if we will use
|
||||||
|
a HTTP proxy or not\n\nif [[ -z $http_proxy ]]; then\n echo \"not using
|
||||||
|
proxy\"\n curl_command=\"curl\"\nelse\n echo \"using proxy\"\n curl_command=\"curl
|
||||||
|
-x $http_proxy\"\n\nfi\n\n\n#dowload from https://www.pornpics.com/pornstars/eiby-shine/\nDESTINATION_FOLDER=\"/data\"\nPROXY_HTTP=\"http://gluetun-svc.gluetun.svc:8888\"\n\n#BASE_URL=\"https://www.pornpics.com/pornstars/eiby-shine/\"\n#pornstars=\"eiby-shine\"\n\nBASE_URL=\"https://www.pornpics.com/?q=shy+imp\"\npornstars=\"shy-imp\"\n\n#BASE_URL=\"https://www.pornpics.com/pornstars/becky-summer\"\n#pornstars=\"becky-summer\"\n\n\n#clear
|
||||||
|
files beforehand\n\n\nmkdir -p $DESTINATION_FOLDER/$pornstars\n\nif [[ $skip_searching_gallery
|
||||||
|
== true ]]; then\n echo \"not looping through galleries\"\n\t\techo \"using
|
||||||
|
existing file instead\"\n\t\t#because we need to keep the file $DESTINATION_FOLDER/$pornstars-urls_of_galleries.txt
|
||||||
|
with the existing URL , in this condition, \n\t\t#no deletion of this file\necho
|
||||||
|
\"https://www.pornpics.com/galleries/onlyfans-shy-imp-starring-shy-imp-naked-porn-pics-90263490/\nhttps://www.pornpics.com/galleries/onlyfans-shy-imp-featuring-shy-imp-xxx-porn-pics-15741579/\nhttps://www.pornpics.com/galleries/onlyfans-shy-imp-starring-shy-imp-naked-photos-68925414/\nhttps://www.pornpics.com/galleries/onlyfans-shy-imp-shy-imp-20862921/\nhttps://www.pornpics.com/galleries/skinny-girl-with-pink-hair-shy-imp-shows-her-small-tits-during-a-solo-show-50988369/\nhttps://www.pornpics.com/galleries/onlyfans-shy-imp-featuring-shy-imp-hot-gallery-86312934/\"
|
||||||
|
>> $DESTINATION_FOLDER/$pornstars-urls_of_galleries.txt\n\nelse\n echo
|
||||||
|
\"looping through galleries\"\n\t\t#because we will re-generate this file, can
|
||||||
|
be emptied\n\t\techo \"\" > $DESTINATION_FOLDER/$pornstars-urls_of_galleries.txt\n
|
||||||
|
\ $curl_command -s $BASE_URL | grep -Eo \"(http|https)://[a-zA-Z0-9./?=_%:-]*\"
|
||||||
|
| grep \"https://www.pornpics.com/galleries/\" |sort -u >> $DESTINATION_FOLDER/$pornstars-urls_of_galleries.txt\nfi\n\necho
|
||||||
|
\"\" > $DESTINATION_FOLDER/$pornstars-image_to_download.txt\n\n\nfor f in $(cat
|
||||||
|
$DESTINATION_FOLDER/$pornstars-urls_of_galleries.txt ); do\n\t$curl_command $f
|
||||||
|
| grep -Eo \"(http|https)://[a-zA-Z0-9./?=_%:-]*\" | grep \"https://cdni.pornpics.com/1280\"
|
||||||
|
>> $DESTINATION_FOLDER/$pornstars-image_to_download.txt\n\techo $f\ndone\n\n\nfor
|
||||||
|
g in $(cat $DESTINATION_FOLDER/$pornstars-image_to_download.txt ); do \n\t$curl_command
|
||||||
|
-O --output-dir $DESTINATION_FOLDER/$pornstars $g\n# wget -e use_proxy=yes
|
||||||
|
-e http_proxy=$PROXY_HTTP $g -P $DESTINATION_FOLDER/$pornstars\n echo $g
|
||||||
|
\ndone\nexit 0\n"
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
name: pornpic-dowloader
|
||||||
|
namespace: stash
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
name: stash-pornpics-dowloader
|
||||||
|
namespace: stash
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: stash-pornpics-dowloader
|
||||||
|
image: bash
|
||||||
|
imagePullPolicy: Always
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: scripts
|
||||||
|
- mountPath: /data
|
||||||
|
mountPropagation: None
|
||||||
|
name: data-pvc
|
||||||
|
command:
|
||||||
|
# - /bin/bash
|
||||||
|
# - -c
|
||||||
|
# - sleep 3600
|
||||||
|
- bash
|
||||||
|
- /config/download.sh
|
||||||
|
- --http_proxy
|
||||||
|
- "http://gluetun-svc.gluetun.svc:8888"
|
||||||
|
restartPolicy: Never
|
||||||
|
volumes:
|
||||||
|
- configMap:
|
||||||
|
defaultMode: 0744
|
||||||
|
name: pornpic-dowloader
|
||||||
|
name: scripts
|
||||||
|
- name: data-pvc
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: data-pvc
|
||||||
|
backoffLimit: 4
|
||||||
|
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
skip_searching_gallery="${skip_searching_gallery:-false}"
|
||||||
|
|
||||||
|
#echo "$skip_searching_gallery"
|
||||||
|
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
if [[ $1 == "--"* ]]; then
|
||||||
|
v="${1/--/}"
|
||||||
|
#declare "$v"="$2"
|
||||||
|
"$v"="$2"
|
||||||
|
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
#echo "$skip_searching_gallery"
|
||||||
|
#if [[ -z $skip_searching_gallery ]]; then
|
||||||
|
if [[ $skip_searching_gallery == true ]]; then
|
||||||
|
echo "not looping through galleries"
|
||||||
|
else
|
||||||
|
echo "looping through galleries"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $http_proxy ]]; then
|
||||||
|
echo "not using proxy"
|
||||||
|
curl_command="curl"
|
||||||
|
else
|
||||||
|
echo "using proxy"
|
||||||
|
curl_command="curl -x $http_proxy"
|
||||||
|
|
||||||
|
fi
|
||||||
|
echo $curl_command
|
||||||
|
$curl_command https://cdni.pornpics.com/460/7/424/83105958/83105958_010_388f.jpg -O
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
DB_DATABASE: d2lraQ==
|
||||||
|
DB_HOST: d2lraWpzLWRiLXN2Yw==
|
||||||
|
DB_PASS: VmVzdDctUHJvZHVjdC1VbnN0ZWFkeQ==
|
||||||
|
DB_USER: d2lraWpzX3VzZXJuYW1l
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
name: wikijs-db-credentials
|
||||||
|
namespace: wikijs
|
||||||
@@ -35,7 +35,7 @@ variable "kubernetes" {
|
|||||||
connected_namespace = optional(string, "")
|
connected_namespace = optional(string, "")
|
||||||
# namespace = optional(string,coalesce(connected_namespace,""))
|
# namespace = optional(string,coalesce(connected_namespace,""))
|
||||||
#block_namespace_creation = optional(bool, false)
|
#block_namespace_creation = optional(bool, false)
|
||||||
service_port = optional(list(number))
|
service_port = optional(number)
|
||||||
service_type = optional(string, "ClusterIP")
|
service_type = optional(string, "ClusterIP")
|
||||||
service_name = optional(string)
|
service_name = optional(string)
|
||||||
liveness_tcp_socket = optional(number)
|
liveness_tcp_socket = optional(number)
|
||||||
@@ -205,19 +205,10 @@ resource "kubernetes_service" "automatic_service" {
|
|||||||
selector = {
|
selector = {
|
||||||
app = each.key
|
app = each.key
|
||||||
}
|
}
|
||||||
dynamic "port" {
|
port {
|
||||||
for_each = each.value.service_port != null ? each.value.service_port : []
|
port = each.value.service_port
|
||||||
content {
|
target_port = each.value.service_port
|
||||||
port = port.value
|
|
||||||
target_port = port.value
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# port {
|
|
||||||
# port = each.value.service_port
|
|
||||||
# target_port = each.value.service_port
|
|
||||||
# }
|
|
||||||
type = each.value.service_type
|
type = each.value.service_type
|
||||||
|
|
||||||
|
|
||||||
@@ -307,10 +298,10 @@ resource "kubernetes_deployment_v1" "automatic" {
|
|||||||
image = each.value.image
|
image = each.value.image
|
||||||
name = coalesce(each.value.name, each.key)
|
name = coalesce(each.value.name, each.key)
|
||||||
dynamic "port" {
|
dynamic "port" {
|
||||||
for_each = each.value.service_port != null ? each.value.service_port : []
|
for_each = each.value.service_port != null ? [""] : []
|
||||||
content {
|
content {
|
||||||
container_port = port.value
|
container_port = each.value.service_port
|
||||||
name = "${each.key}-${port.value}"
|
name = each.key
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6265
-3
File diff suppressed because it is too large
Load Diff
+6263
-10
File diff suppressed because it is too large
Load Diff
+221
-158
@@ -6,18 +6,18 @@ kubernetes = {
|
|||||||
extra_manifest = ["/opt/kubernetes/Bookstack_kube/Bookstack.configmap.yaml", "/opt/kubernetes/Bookstack_kube/Bookstack.secret.yaml"]
|
extra_manifest = ["/opt/kubernetes/Bookstack_kube/Bookstack.configmap.yaml", "/opt/kubernetes/Bookstack_kube/Bookstack.secret.yaml"]
|
||||||
#image = "linuxserver/bookstack:24.10.3"
|
#image = "linuxserver/bookstack:24.10.3"
|
||||||
image = "linuxserver/bookstack:latest"
|
image = "linuxserver/bookstack:latest"
|
||||||
service_port = [80,443]
|
service_port = 80
|
||||||
database = {
|
database = {
|
||||||
"image" = "lscr.io/linuxserver/mariadb"
|
"image" = "lscr.io/linuxserver/mariadb"
|
||||||
"port" = 3306
|
"port" = 3306
|
||||||
"mountPath" = "/config"
|
"mountPath" = "/config"
|
||||||
}
|
}
|
||||||
requirements = {
|
# requirements = {
|
||||||
limits-cpu = "500m"
|
# limits-cpu = "18m"
|
||||||
limits-memory = "200Mi"
|
# limits-memory = "100Mi"
|
||||||
requests-cpu = "300m"
|
# requests-cpu = "10m"
|
||||||
requests-memory = "100Mi"
|
# requests-memory = "70Mi"
|
||||||
}
|
# }
|
||||||
secret_ref = ["bookstack-credentials"]
|
secret_ref = ["bookstack-credentials"]
|
||||||
config_map_ref = ["config"]
|
config_map_ref = ["config"]
|
||||||
|
|
||||||
@@ -74,10 +74,10 @@ kubernetes = {
|
|||||||
|
|
||||||
|
|
||||||
screeps = {
|
screeps = {
|
||||||
# enabled = false
|
enabled = false
|
||||||
name = "screeps-server"
|
name = "screeps-server"
|
||||||
image = "screepers/screeps-launcher"
|
image = "screepers/screeps-launcher"
|
||||||
service_port = [21025]
|
service_port = 21025
|
||||||
service_type = "LoadBalancer"
|
service_type = "LoadBalancer"
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
@@ -107,7 +107,7 @@ kubernetes = {
|
|||||||
enabled = false
|
enabled = false
|
||||||
name = "stirling-pdf"
|
name = "stirling-pdf"
|
||||||
image = "docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest"
|
image = "docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest"
|
||||||
service_port = [8080]
|
service_port = 8080
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
LANGS = {
|
LANGS = {
|
||||||
@@ -138,7 +138,7 @@ kubernetes = {
|
|||||||
replicas = 0
|
replicas = 0
|
||||||
name = "stash"
|
name = "stash"
|
||||||
image = "stashapp/stash:latest"
|
image = "stashapp/stash:latest"
|
||||||
service_port = [9999]
|
service_port = 9999
|
||||||
#extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/stash/stash-reddit-dowloader.configmap.yml"]
|
#extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/stash/stash-reddit-dowloader.configmap.yml"]
|
||||||
environment = {
|
environment = {
|
||||||
STASH_STASH = {
|
STASH_STASH = {
|
||||||
@@ -193,15 +193,14 @@ kubernetes = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stashgluetun = {
|
gluetun = {
|
||||||
enabled = false
|
#enabled = false
|
||||||
connected_namespace = "stash"
|
dns_nameservers = "10.2.0.1"
|
||||||
dns_nameservers = "10.2.0.1"
|
replicas = 01
|
||||||
replicas = 01
|
image = "qmcgaw/gluetun:latest"
|
||||||
image = "qmcgaw/gluetun:latest"
|
service_port = 8888
|
||||||
service_port = [8888]
|
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/gluetun/gluetun-secret-netherland.yaml"]
|
||||||
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/stash/gluetun-secret-netherland.yaml"]
|
security_context = true
|
||||||
security_context = true
|
|
||||||
# requirements = {
|
# requirements = {
|
||||||
# limits-cpu = "800Mi"
|
# limits-cpu = "800Mi"
|
||||||
# limits-memory = "800Mi"
|
# limits-memory = "800Mi"
|
||||||
@@ -302,7 +301,7 @@ kubernetes = {
|
|||||||
enabled = false
|
enabled = false
|
||||||
namespace = "onitama"
|
namespace = "onitama"
|
||||||
image = "ghcr.io/jackadamson/onitama:latest"
|
image = "ghcr.io/jackadamson/onitama:latest"
|
||||||
service_port = [8080]
|
service_port = 8080
|
||||||
requirements = {
|
requirements = {
|
||||||
limits-cpu = "50m"
|
limits-cpu = "50m"
|
||||||
limits-memory = "50Mi"
|
limits-memory = "50Mi"
|
||||||
@@ -356,7 +355,7 @@ kubernetes = {
|
|||||||
redis = {
|
redis = {
|
||||||
enabled = false
|
enabled = false
|
||||||
image = "redis"
|
image = "redis"
|
||||||
service_port = [6379]
|
service_port = 6379
|
||||||
liveness_tcp_socket = 6379
|
liveness_tcp_socket = 6379
|
||||||
# environment_variables = [{
|
# environment_variables = [{
|
||||||
# "name" : "redis_PORT",
|
# "name" : "redis_PORT",
|
||||||
@@ -367,7 +366,7 @@ kubernetes = {
|
|||||||
vulcan = {
|
vulcan = {
|
||||||
enabled = false
|
enabled = false
|
||||||
image = "localhost:31795/vulcan-frontend:latest"
|
image = "localhost:31795/vulcan-frontend:latest"
|
||||||
service_port = [80]
|
service_port = 80
|
||||||
requirements = {
|
requirements = {
|
||||||
limits-cpu = "50m"
|
limits-cpu = "50m"
|
||||||
limits-memory = "50Mi"
|
limits-memory = "50Mi"
|
||||||
@@ -395,7 +394,7 @@ kubernetes = {
|
|||||||
requests-cpu = "50m"
|
requests-cpu = "50m"
|
||||||
requests-memory = "50Mi"
|
requests-memory = "50Mi"
|
||||||
}
|
}
|
||||||
service_port = [3000]
|
service_port = 3000
|
||||||
pvc_size = "1Gi"
|
pvc_size = "1Gi"
|
||||||
mount_path = "/data"
|
mount_path = "/data"
|
||||||
}
|
}
|
||||||
@@ -408,7 +407,7 @@ kubernetes = {
|
|||||||
requests-cpu = "50m"
|
requests-cpu = "50m"
|
||||||
requests-memory = "50Mi"
|
requests-memory = "50Mi"
|
||||||
}
|
}
|
||||||
service_port = [3000]
|
service_port = 3000
|
||||||
pvc_size = "1Gi"
|
pvc_size = "1Gi"
|
||||||
mount_path = "/data"
|
mount_path = "/data"
|
||||||
}
|
}
|
||||||
@@ -416,7 +415,7 @@ kubernetes = {
|
|||||||
notmuch = {
|
notmuch = {
|
||||||
enabled = false
|
enabled = false
|
||||||
image = "kalbasit/notmuch"
|
image = "kalbasit/notmuch"
|
||||||
service_port = [80]
|
service_port = 80
|
||||||
}
|
}
|
||||||
|
|
||||||
spider = {
|
spider = {
|
||||||
@@ -429,7 +428,7 @@ kubernetes = {
|
|||||||
requests-cpu = "50m"
|
requests-cpu = "50m"
|
||||||
requests-memory = "50Mi"
|
requests-memory = "50Mi"
|
||||||
}
|
}
|
||||||
service_port = [8080]
|
service_port = 8080
|
||||||
pvc = {
|
pvc = {
|
||||||
spider-data = {
|
spider-data = {
|
||||||
pvc = true
|
pvc = true
|
||||||
@@ -449,7 +448,7 @@ kubernetes = {
|
|||||||
requests-cpu = "50m"
|
requests-cpu = "50m"
|
||||||
requests-memory = "50Mi"
|
requests-memory = "50Mi"
|
||||||
}
|
}
|
||||||
service_port = [80]
|
service_port = 80
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -457,7 +456,7 @@ kubernetes = {
|
|||||||
enabled = false
|
enabled = false
|
||||||
namespace = "paper"
|
namespace = "paper"
|
||||||
image = "ghcr.io/paperless-ngx/paperless-ngx:latest"
|
image = "ghcr.io/paperless-ngx/paperless-ngx:latest"
|
||||||
service_port = [8000]
|
service_port = 8000
|
||||||
database = {
|
database = {
|
||||||
image = "docker.io/library/postgres:15" }
|
image = "docker.io/library/postgres:15" }
|
||||||
redis = {
|
redis = {
|
||||||
@@ -577,7 +576,7 @@ kubernetes = {
|
|||||||
name = "gotenberg"
|
name = "gotenberg"
|
||||||
connected_namespace = "paper"
|
connected_namespace = "paper"
|
||||||
image = "gotenberg/gotenberg:7.9.2"
|
image = "gotenberg/gotenberg:7.9.2"
|
||||||
service_port = [3000]
|
service_port = 3000
|
||||||
|
|
||||||
requirements = {
|
requirements = {
|
||||||
limits-cpu = "100m"
|
limits-cpu = "100m"
|
||||||
@@ -593,7 +592,7 @@ kubernetes = {
|
|||||||
name = "tika"
|
name = "tika"
|
||||||
connected_namespace = "paper"
|
connected_namespace = "paper"
|
||||||
image = "ghcr.io/paperless-ngx/tika"
|
image = "ghcr.io/paperless-ngx/tika"
|
||||||
service_port = [9998]
|
service_port = 9998
|
||||||
|
|
||||||
requirements = {
|
requirements = {
|
||||||
limits-cpu = "100m"
|
limits-cpu = "100m"
|
||||||
@@ -614,7 +613,7 @@ kubernetes = {
|
|||||||
namespace = "next"
|
namespace = "next"
|
||||||
replicas = 01
|
replicas = 01
|
||||||
image = "nextcloud:29.0.3-apache"
|
image = "nextcloud:29.0.3-apache"
|
||||||
service_port = [80]
|
service_port = 80
|
||||||
extra_manifest = ["/opt/kubernetes/Nextcloud_kube/next.secret.yaml"]
|
extra_manifest = ["/opt/kubernetes/Nextcloud_kube/next.secret.yaml"]
|
||||||
database = {
|
database = {
|
||||||
image = "docker.io/library/postgres:14" }
|
image = "docker.io/library/postgres:14" }
|
||||||
@@ -706,7 +705,7 @@ kubernetes = {
|
|||||||
enabled = false
|
enabled = false
|
||||||
name = "neko"
|
name = "neko"
|
||||||
image = "ghcr.io/m1k1o/neko/firefox:latest"
|
image = "ghcr.io/m1k1o/neko/firefox:latest"
|
||||||
service_port = [8080]
|
service_port = 8080
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
|
|
||||||
@@ -736,7 +735,7 @@ kubernetes = {
|
|||||||
homeassistant = {
|
homeassistant = {
|
||||||
enabled = false
|
enabled = false
|
||||||
image = "ghcr.io/home-assistant/home-assistant:stable"
|
image = "ghcr.io/home-assistant/home-assistant:stable"
|
||||||
service_port = [8123]
|
service_port = 8123
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
|
|
||||||
@@ -771,7 +770,7 @@ kubernetes = {
|
|||||||
# enabled = false
|
# enabled = false
|
||||||
replicas = 0
|
replicas = 0
|
||||||
image = "jellyfin/jellyfin:latest"
|
image = "jellyfin/jellyfin:latest"
|
||||||
service_port = [8096]
|
service_port = 8096
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
|
|
||||||
@@ -810,7 +809,7 @@ kubernetes = {
|
|||||||
dupeguru = {
|
dupeguru = {
|
||||||
enabled = false
|
enabled = false
|
||||||
image = "jlesage/dupeguru"
|
image = "jlesage/dupeguru"
|
||||||
service_port = [5800]
|
service_port = 5800
|
||||||
|
|
||||||
pvc = {
|
pvc = {
|
||||||
dupeguru-config = {
|
dupeguru-config = {
|
||||||
@@ -844,7 +843,7 @@ kubernetes = {
|
|||||||
enabled = false
|
enabled = false
|
||||||
connected_namespace = "screeps"
|
connected_namespace = "screeps"
|
||||||
image = "ghcr.io/kieraneglin/pinchflat:latest"
|
image = "ghcr.io/kieraneglin/pinchflat:latest"
|
||||||
service_port = [8945]
|
service_port = 8945
|
||||||
|
|
||||||
pvc = {
|
pvc = {
|
||||||
pinchflat-config = {
|
pinchflat-config = {
|
||||||
@@ -872,7 +871,7 @@ kubernetes = {
|
|||||||
enabled = false
|
enabled = false
|
||||||
connected_namespace = "stash"
|
connected_namespace = "stash"
|
||||||
image = "rainmanjam/jobspy-api:latest"
|
image = "rainmanjam/jobspy-api:latest"
|
||||||
service_port = [8000]
|
service_port = 8000
|
||||||
environment = {
|
environment = {
|
||||||
ENABLE_API_KEY_AUTH = {
|
ENABLE_API_KEY_AUTH = {
|
||||||
value = "true"
|
value = "true"
|
||||||
@@ -890,115 +889,16 @@ kubernetes = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gluetun = {
|
|
||||||
enabled = false
|
|
||||||
namespace = "tservarr"
|
|
||||||
dns_nameservers = "10.2.0.1"
|
|
||||||
replicas = 01
|
|
||||||
image = "qmcgaw/gluetun:latest"
|
|
||||||
service_port = [8888]
|
|
||||||
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/servarr/gluetun-secret-netherland.yaml"]
|
|
||||||
security_context = true
|
|
||||||
# requirements = {
|
|
||||||
# limits-cpu = "800Mi"
|
|
||||||
# limits-memory = "800Mi"
|
|
||||||
# requests-cpu = "800Mi"
|
|
||||||
# requests-memory = "800Mi"
|
|
||||||
# }
|
|
||||||
environment = {
|
|
||||||
DNS_ADDRESS = {
|
|
||||||
value_from = {
|
|
||||||
secret_key_ref = {
|
|
||||||
name = "gluetun-secret-netherland"
|
|
||||||
key = "VPN_DNS_IP"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
WIREGUARD_ENDPOINT_IP = {
|
|
||||||
value_from = {
|
|
||||||
secret_key_ref = {
|
|
||||||
name = "gluetun-secret-netherland"
|
|
||||||
key = "VPN_ENDPOINT_IP"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
WIREGUARD_ENDPOINT_PORT = {
|
|
||||||
value_from = {
|
|
||||||
secret_key_ref = {
|
|
||||||
name = "gluetun-secret-netherland"
|
|
||||||
key = "VPN_ENDPOINT_PORT"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
WIREGUARD_PRIVATE_KEY = {
|
|
||||||
value_from = {
|
|
||||||
secret_key_ref = {
|
|
||||||
name = "gluetun-secret-netherland"
|
|
||||||
key = "WIREGUARD_PRIVATE_KEY"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
WIREGUARD_PUBLIC_KEY = {
|
|
||||||
value_from = {
|
|
||||||
secret_key_ref = {
|
|
||||||
name = "gluetun-secret-netherland"
|
|
||||||
key = "WIREGUARD_PUBLIC_KEY"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# SHADOWSOCKS = {
|
|
||||||
HTTPPROXY = {
|
|
||||||
value = "on"
|
|
||||||
}
|
|
||||||
#SHADOWSOCKS_LOG = {
|
|
||||||
HTTPPROXY_LOG = {
|
|
||||||
value = "on"
|
|
||||||
}
|
|
||||||
HTTPPROXY_LISTENING_ADDRESS = {
|
|
||||||
#SHADOWSOCKS_LISTENING_ADDRESS = {
|
|
||||||
value = "0.0.0.0:8888"
|
|
||||||
}
|
|
||||||
# HTTPPROXY_USER = {
|
|
||||||
# value = "user"
|
|
||||||
# }
|
|
||||||
|
|
||||||
#SHADOWSOCKS_PASSWORD = {
|
|
||||||
# HTTPPROXY_PASSWORD = {
|
|
||||||
# value = "user"
|
|
||||||
#}
|
|
||||||
DNS_KEEP_NAMESERVER = {
|
|
||||||
value = "off"
|
|
||||||
}
|
|
||||||
VPN_SERVICE_PROVIDER = {
|
|
||||||
value = "custom"
|
|
||||||
}
|
|
||||||
VPN_TYPE = {
|
|
||||||
value = "wireguard"
|
|
||||||
}
|
|
||||||
WIREGUARD_ADDRESSES = {
|
|
||||||
value = "10.2.0.2/32"
|
|
||||||
}
|
|
||||||
FIREWALL_INPUT_PORTS = {
|
|
||||||
value = "8081,7878,9696,9091,51413,8080,6881,8989,8191,8888,8000"
|
|
||||||
}
|
|
||||||
PUBLICIP_API = {
|
|
||||||
value = "ip2location"
|
|
||||||
}
|
|
||||||
|
|
||||||
HEALTH_TARGET_ADDRESS = {
|
|
||||||
value = "protonvpn.com"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
prowlarr = {
|
prowlarr = {
|
||||||
enabled = false
|
# enabled = false
|
||||||
image = "linuxserver/prowlarr:latest"
|
image = "linuxserver/prowlarr:latest"
|
||||||
connected_namespace = "tservarr"
|
namespace = "servarr"
|
||||||
|
#replicas = 0
|
||||||
# dns_nameservers = "10.2.0.1"
|
# dns_nameservers = "10.2.0.1"
|
||||||
service_port = [9696]
|
service_port = 9696
|
||||||
|
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/servarr/servarr-db.secret.yaml"]
|
||||||
|
database = {}
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
PUID = {
|
PUID = {
|
||||||
@@ -1010,6 +910,35 @@ kubernetes = {
|
|||||||
TZ = {
|
TZ = {
|
||||||
value = "Etc/UTC"
|
value = "Etc/UTC"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
POSTGRES_DB = {
|
||||||
|
value_from = {
|
||||||
|
secret_key_ref = {
|
||||||
|
name = "servarr-db-credentials"
|
||||||
|
key = "DB_DATABASE"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
POSTGRES_USER = {
|
||||||
|
value_from = {
|
||||||
|
secret_key_ref = {
|
||||||
|
name = "servarr-db-credentials"
|
||||||
|
key = "DB_USER"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
POSTGRES_PASSWORD = {
|
||||||
|
value_from = {
|
||||||
|
secret_key_ref = {
|
||||||
|
name = "servarr-db-credentials"
|
||||||
|
key = "DB_PASS"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
# requirements = {
|
# requirements = {
|
||||||
# limits-cpu = "1000m"
|
# limits-cpu = "1000m"
|
||||||
@@ -1035,10 +964,11 @@ kubernetes = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
radarr = {
|
radarr = {
|
||||||
enabled = false
|
#enabled = false
|
||||||
image = "lscr.io/linuxserver/radarr:latest"
|
image = "lscr.io/linuxserver/radarr:latest"
|
||||||
connected_namespace = "tservarr"
|
connected_namespace = "servarr"
|
||||||
service_port = [7878]
|
service_port = 7878
|
||||||
|
#replicas = 0
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
PUID = {
|
PUID = {
|
||||||
@@ -1077,11 +1007,11 @@ kubernetes = {
|
|||||||
|
|
||||||
|
|
||||||
sonarr = {
|
sonarr = {
|
||||||
enabled = false
|
#enabled = false
|
||||||
image = "lscr.io/linuxserver/sonarr:latest"
|
image = "lscr.io/linuxserver/sonarr:latest"
|
||||||
connected_namespace = "tservarr"
|
connected_namespace = "servarr"
|
||||||
service_port = [8989]
|
service_port = 8989
|
||||||
|
#replicas = 0
|
||||||
environment = {
|
environment = {
|
||||||
PUID = {
|
PUID = {
|
||||||
value = "1000"
|
value = "1000"
|
||||||
@@ -1117,12 +1047,11 @@ kubernetes = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qbittorrent = {
|
||||||
flaresolverr = {
|
#enabled = false
|
||||||
enabled = false
|
image = "lscr.io/linuxserver/qbittorrent:latest"
|
||||||
image = "ghcr.io/flaresolverr/flaresolverr:latest"
|
connected_namespace = "servarr"
|
||||||
connected_namespace = "tservarr"
|
service_port = 8080
|
||||||
service_port = [8191]
|
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
PUID = {
|
PUID = {
|
||||||
@@ -1134,6 +1063,57 @@ kubernetes = {
|
|||||||
TZ = {
|
TZ = {
|
||||||
value = "Etc/UTC"
|
value = "Etc/UTC"
|
||||||
}
|
}
|
||||||
|
WEBUI_PORT = {
|
||||||
|
value = "8080"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
requirements = {
|
||||||
|
limits-cpu = "200m"
|
||||||
|
limits-memory = "250Mi"
|
||||||
|
requests-cpu = "100m"
|
||||||
|
requests-memory = "100Mi"
|
||||||
|
}
|
||||||
|
pvc = {
|
||||||
|
qbittorrent-config = {
|
||||||
|
name = "qbittorrent-config"
|
||||||
|
pvc_size = "10Mi"
|
||||||
|
pvc = true
|
||||||
|
mount_path = "/config"
|
||||||
|
}
|
||||||
|
servarr-data = {
|
||||||
|
name = "servarr-data"
|
||||||
|
pvc_size = "10Mi"
|
||||||
|
pvc = false
|
||||||
|
host_path = "/data"
|
||||||
|
mount_path = "/disk"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
flaresolverr = {
|
||||||
|
# enabled = false
|
||||||
|
#image = "ghcr.io/flaresolverr/flaresolverr:latest"
|
||||||
|
image = "alexfozor/flaresolverr:pr-1300-experimental"
|
||||||
|
|
||||||
|
connected_namespace = "servarr"
|
||||||
|
service_port = 8191
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
PUID = {
|
||||||
|
value = "1000"
|
||||||
|
}
|
||||||
|
PGID = {
|
||||||
|
value = "1000"
|
||||||
|
}
|
||||||
|
TZ = {
|
||||||
|
value = "Etc/UTC"
|
||||||
|
}
|
||||||
|
CAPTCHA_SOLVER = { value = "hcaptcha-solver"
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
# requirements = {
|
# requirements = {
|
||||||
# limits-cpu = "1000m"
|
# limits-cpu = "1000m"
|
||||||
@@ -1147,7 +1127,7 @@ kubernetes = {
|
|||||||
poste = {
|
poste = {
|
||||||
enabled = false
|
enabled = false
|
||||||
image = "analogic/poste.io:latest"
|
image = "analogic/poste.io:latest"
|
||||||
service_port = [443]
|
service_port = 443
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
PUID = {
|
PUID = {
|
||||||
@@ -1178,4 +1158,87 @@ kubernetes = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wikijs = {
|
||||||
|
#enabled = false
|
||||||
|
image = "ghcr.io/requarks/wiki:2.5"
|
||||||
|
service_port = 3000
|
||||||
|
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/wikijs/wikijs-db.secret.yaml"]
|
||||||
|
database = {}
|
||||||
|
environment = {
|
||||||
|
PUID = {
|
||||||
|
value = "1000"
|
||||||
|
}
|
||||||
|
PGID = {
|
||||||
|
value = "1000"
|
||||||
|
}
|
||||||
|
TZ = {
|
||||||
|
value = "Etc/UTC"
|
||||||
|
}
|
||||||
|
DB_TYPE = { value = "postgres" }
|
||||||
|
DB_PORT = { value = "5432" }
|
||||||
|
|
||||||
|
POSTGRES_DB = {
|
||||||
|
value_from = {
|
||||||
|
secret_key_ref = {
|
||||||
|
name = "wikijs-db-credentials"
|
||||||
|
key = "DB_DATABASE"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
POSTGRES_USER = {
|
||||||
|
value_from = {
|
||||||
|
secret_key_ref = {
|
||||||
|
name = "wikijs-db-credentials"
|
||||||
|
key = "DB_USER"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
POSTGRES_PASSWORD = {
|
||||||
|
value_from = {
|
||||||
|
secret_key_ref = {
|
||||||
|
name = "wikijs-db-credentials"
|
||||||
|
key = "DB_PASS"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DB_NAME = {
|
||||||
|
value_from = {
|
||||||
|
secret_key_ref = {
|
||||||
|
name = "wikijs-db-credentials"
|
||||||
|
key = "DB_DATABASE"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DB_USER = {
|
||||||
|
value_from = {
|
||||||
|
secret_key_ref = {
|
||||||
|
name = "wikijs-db-credentials"
|
||||||
|
key = "DB_USER"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DB_PASS = {
|
||||||
|
value_from = {
|
||||||
|
secret_key_ref = {
|
||||||
|
name = "wikijs-db-credentials"
|
||||||
|
key = "DB_PASS"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DB_HOST = {
|
||||||
|
value_from = {
|
||||||
|
secret_key_ref = {
|
||||||
|
name = "wikijs-db-credentials"
|
||||||
|
key = "DB_HOST"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user