mirror of
https://github.com/casjaysdevdocker/aria2
synced 2025-05-14 14:11:25 -04:00
🗃️ Committing everything that changed 🗃️
Dockerfile .env.scripts .gitattributes .gitea/workflows/docker.yaml .gitignore LICENSE.md README.md rootfs/root/docker/setup/00-init.sh rootfs/root/docker/setup/01-system.sh rootfs/root/docker/setup/02-packages.sh rootfs/root/docker/setup/03-files.sh rootfs/root/docker/setup/04-users.sh rootfs/root/docker/setup/05-custom.sh rootfs/root/docker/setup/06-post.sh rootfs/root/docker/setup/07-cleanup.sh rootfs/tmp/ rootfs/usr/local/bin/entrypoint.sh rootfs/usr/local/bin/pkmgr rootfs/usr/local/etc/docker/env/00-directory.sh rootfs/usr/local/etc/docker/env/addresses.sh rootfs/usr/local/etc/docker/env/certbot.sh rootfs/usr/local/etc/docker/env/couchdb.sh rootfs/usr/local/etc/docker/env/default.sample rootfs/usr/local/etc/docker/env/global.sh rootfs/usr/local/etc/docker/env/healthcheck.sh rootfs/usr/local/etc/docker/env/mariadb.sh rootfs/usr/local/etc/docker/env/mongodb.sh rootfs/usr/local/etc/docker/env/networking.sh rootfs/usr/local/etc/docker/env/other.sh rootfs/usr/local/etc/docker/env/php.sh rootfs/usr/local/etc/docker/env/postgres.sh rootfs/usr/local/etc/docker/env/redis.sh rootfs/usr/local/etc/docker/env/services.sh rootfs/usr/local/etc/docker/env/ssl.sh rootfs/usr/local/etc/docker/env/supabase.sh rootfs/usr/local/etc/docker/env/webservers.sh rootfs/usr/local/etc/docker/env/zz-entrypoint.sh rootfs/usr/local/etc/docker/functions/ rootfs/usr/local/etc/docker/init.d/00-aria2c.sh rootfs/usr/local/etc/docker/init.d/zz-nginx.sh rootfs/usr/local/share/template-files/config/aria2/aria2.conf rootfs/usr/local/share/template-files/config/aria2/aria2.session rootfs/usr/local/share/template-files/config/aria2/aria-ng.config.js rootfs/usr/local/share/template-files/config/aria2/scripts/post-hook.sh rootfs/usr/local/share/template-files/config/env/default.sample rootfs/usr/local/share/template-files/config/env/examples/ rootfs/usr/local/share/template-files/config/.gitkeep rootfs/usr/local/share/template-files/config/nginx/mime.types rootfs/usr/local/share/template-files/config/nginx/nginx.conf
This commit is contained in:
parent
a6eb018566
commit
6a157bb7f9
@ -1,10 +1,10 @@
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
##@Version : 202502042133-git
|
##@Version : 202505131548-git
|
||||||
# @@Author : CasjaysDev
|
# @@Author : CasjaysDev
|
||||||
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
||||||
# @@License : MIT
|
# @@License : MIT
|
||||||
# @@Copyright : Copyright 2025 CasjaysDev
|
# @@Copyright : Copyright 2025 CasjaysDev
|
||||||
# @@Created : Tue Feb 4 09:33:29 PM EST 2025
|
# @@Created : Tue May 13 03:48:09 PM EDT 2025
|
||||||
# @@File : .env.scripts
|
# @@File : .env.scripts
|
||||||
# @@Description : Variables for gen-dockerfile and buildx scripts
|
# @@Description : Variables for gen-dockerfile and buildx scripts
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
86
.gitattributes
vendored
86
.gitattributes
vendored
@ -0,0 +1,86 @@
|
|||||||
|
# Template generated on Sat Dec 28 01:53:40 PM EST 2024 from https://github.com/alexkaratarakis/gitattributes"
|
||||||
|
# Common settings that generally should always be used with your language specific settings
|
||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
* text=auto
|
||||||
|
# The above will handle all files NOT found below
|
||||||
|
# Documents
|
||||||
|
*.bibtex text diff=bibtex
|
||||||
|
*.doc diff=astextplain
|
||||||
|
*.DOC diff=astextplain
|
||||||
|
*.docx diff=astextplain
|
||||||
|
*.DOCX diff=astextplain
|
||||||
|
*.dot diff=astextplain
|
||||||
|
*.DOT diff=astextplain
|
||||||
|
*.pdf diff=astextplain
|
||||||
|
*.PDF diff=astextplain
|
||||||
|
*.rtf diff=astextplain
|
||||||
|
*.RTF diff=astextplain
|
||||||
|
*.md text diff=markdown
|
||||||
|
*.mdx text diff=markdown
|
||||||
|
*.tex text diff=tex
|
||||||
|
*.adoc text
|
||||||
|
*.textile text
|
||||||
|
*.mustache text
|
||||||
|
*.csv text eol=crlf
|
||||||
|
*.tab text
|
||||||
|
*.tsv text
|
||||||
|
*.txt text
|
||||||
|
*.sql text
|
||||||
|
*.epub diff=astextplain
|
||||||
|
# Graphics
|
||||||
|
*.png binary
|
||||||
|
*.jpg binary
|
||||||
|
*.jpeg binary
|
||||||
|
*.gif binary
|
||||||
|
*.tif binary
|
||||||
|
*.tiff binary
|
||||||
|
*.ico binary
|
||||||
|
# SVG treated as text by default.
|
||||||
|
*.svg text
|
||||||
|
# If you want to treat it as binary,
|
||||||
|
# use the following line instead.
|
||||||
|
# *.svg binary
|
||||||
|
*.eps binary
|
||||||
|
# Scripts
|
||||||
|
*.bash text eol=lf
|
||||||
|
*.fish text eol=lf
|
||||||
|
*.ksh text eol=lf
|
||||||
|
*.sh text eol=lf
|
||||||
|
*.zsh text eol=lf
|
||||||
|
# These are explicitly windows files and should use crlf
|
||||||
|
*.bat text eol=crlf
|
||||||
|
*.cmd text eol=crlf
|
||||||
|
*.ps1 text eol=crlf
|
||||||
|
# Serialisation
|
||||||
|
*.json text
|
||||||
|
*.toml text
|
||||||
|
*.xml text
|
||||||
|
*.yaml text
|
||||||
|
*.yml text
|
||||||
|
# Archives
|
||||||
|
*.7z binary
|
||||||
|
*.bz binary
|
||||||
|
*.bz2 binary
|
||||||
|
*.bzip2 binary
|
||||||
|
*.gz binary
|
||||||
|
*.lz binary
|
||||||
|
*.lzma binary
|
||||||
|
*.rar binary
|
||||||
|
*.tar binary
|
||||||
|
*.taz binary
|
||||||
|
*.tbz binary
|
||||||
|
*.tbz2 binary
|
||||||
|
*.tgz binary
|
||||||
|
*.tlz binary
|
||||||
|
*.txz binary
|
||||||
|
*.xz binary
|
||||||
|
*.Z binary
|
||||||
|
*.zip binary
|
||||||
|
*.zst binary
|
||||||
|
# Text files where line endings should be preserved
|
||||||
|
*.patch -text
|
||||||
|
# Exclude files from exporting
|
||||||
|
.gitattributes export-ignore
|
||||||
|
.gitignore export-ignore
|
||||||
|
.gitkeep export-ignore
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
name: release-tag
|
name: aria2
|
||||||
|
|
||||||
on: push
|
on: push
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release-image:
|
release-aria2:
|
||||||
runs-on: act_runner
|
runs-on: act_runner
|
||||||
container:
|
container:
|
||||||
image: catthehacker/ubuntu:act-latest
|
image: catthehacker/ubuntu:act-latest
|
||||||
@ -49,4 +49,3 @@ jobs:
|
|||||||
tags: | # replace it with your local IP and tags
|
tags: | # replace it with your local IP and tags
|
||||||
${{ steps.meta.outputs.DOCKER_HUB }}/${{ steps.meta.outputs.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.DATE_TAG }}
|
${{ steps.meta.outputs.DOCKER_HUB }}/${{ steps.meta.outputs.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.DATE_TAG }}
|
||||||
${{ steps.meta.outputs.DOCKER_HUB }}/${{ steps.meta.outputs.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.DOCKER_TAG }}
|
${{ steps.meta.outputs.DOCKER_HUB }}/${{ steps.meta.outputs.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.DOCKER_TAG }}
|
||||||
|
|
||||||
|
18
.gitignore
vendored
18
.gitignore
vendored
@ -1,4 +1,4 @@
|
|||||||
# gitignore created on 03/14/23 at 09:10
|
# gitignore created on 05/13/25 at 15:51
|
||||||
# Disable reminder in prompt
|
# Disable reminder in prompt
|
||||||
ignoredirmessage
|
ignoredirmessage
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ ignoredirmessage
|
|||||||
|
|
||||||
### macOS ###
|
### macOS ###
|
||||||
# General
|
# General
|
||||||
.DS_Store
|
.DS_Store?
|
||||||
.AppleDouble
|
.AppleDouble
|
||||||
.LSOverride
|
.LSOverride
|
||||||
|
|
||||||
@ -70,14 +70,19 @@ $RECYCLE.BIN/
|
|||||||
*.msm
|
*.msm
|
||||||
*.msp
|
*.msp
|
||||||
|
|
||||||
|
# misc
|
||||||
|
!*/README*
|
||||||
|
!inc/main.bash
|
||||||
|
|
||||||
# Windows shortcuts
|
# Windows shortcuts
|
||||||
*.lnk
|
*.lnk
|
||||||
|
|
||||||
# ignore commit message
|
# ignore commit message
|
||||||
**/.gitcommit
|
**/.gitcommit
|
||||||
|
|
||||||
#ignore .failed
|
# ignore .build_failed files
|
||||||
**/.build_failed
|
**/.build_failed*
|
||||||
|
|
||||||
|
|
||||||
# ignore .bak files
|
# ignore .bak files
|
||||||
**/*.bak
|
**/*.bak
|
||||||
@ -91,3 +96,8 @@ $RECYCLE.BIN/
|
|||||||
# ignore .installed files
|
# ignore .installed files
|
||||||
**/.installed
|
**/.installed
|
||||||
|
|
||||||
|
# ignore work in progress files
|
||||||
|
**/*.rewrite.sh
|
||||||
|
**/*.refactor.sh
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
# syntax=docker/dockerfile:1
|
|
||||||
# Docker image for aria2 using the alpine template
|
# Docker image for aria2 using the alpine template
|
||||||
ARG IMAGE_NAME="aria2"
|
ARG IMAGE_NAME="aria2"
|
||||||
ARG PHP_SERVER="aria2"
|
ARG PHP_SERVER="aria2"
|
||||||
ARG BUILD_DATE="202502042133"
|
ARG BUILD_DATE="202505131548"
|
||||||
ARG LANGUAGE="en_US.UTF-8"
|
ARG LANGUAGE="en_US.UTF-8"
|
||||||
ARG TIMEZONE="America/New_York"
|
ARG TIMEZONE="America/New_York"
|
||||||
ARG WWW_ROOT_DIR="/usr/local/share/httpd/default"
|
ARG WWW_ROOT_DIR="/usr/local/share/httpd/default"
|
||||||
@ -71,7 +70,8 @@ WORKDIR /root
|
|||||||
|
|
||||||
COPY ./rootfs/usr/local/bin/. /usr/local/bin/
|
COPY ./rootfs/usr/local/bin/. /usr/local/bin/
|
||||||
|
|
||||||
RUN echo "Updating the system and ensuring bash is installed"; \
|
RUN set -e; \
|
||||||
|
echo "Updating the system and ensuring bash is installed"; \
|
||||||
pkmgr update;pkmgr install bash
|
pkmgr update;pkmgr install bash
|
||||||
|
|
||||||
RUN set -e; \
|
RUN set -e; \
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||||
Version 2, December 2004
|
Version 2, December 2004
|
||||||
|
|
||||||
Copyright (C) 2023 casjay <git-admin@casjaysdev.pro>
|
Copyright (C) 2025 casjay <git-admin@casjaysdev.pro>
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim or modified
|
Everyone is permitted to copy and distribute verbatim or modified
|
||||||
copies of this license document, and changing it is allowed as long
|
copies of this license document, and changing it is allowed as long
|
||||||
|
51
README.md
51
README.md
@ -10,10 +10,54 @@ aria2 README
|
|||||||
sudo systemmgr --config && sudo systemmgr install scripts
|
sudo systemmgr --config && sudo systemmgr install scripts
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Automatic install/update
|
||||||
|
|
||||||
|
```shell
|
||||||
|
dockermgr update aria2
|
||||||
|
```
|
||||||
|
|
||||||
|
## Install and run container
|
||||||
|
|
||||||
|
```shell
|
||||||
|
dockerHome="/var/lib/srv/$USER/docker/casjaysdevdocker/aria2/aria2/latest/rootfs"
|
||||||
|
mkdir -p "/var/lib/srv/$USER/docker/aria2/rootfs"
|
||||||
|
git clone "https://github.com/dockermgr/aria2" "$HOME/.local/share/CasjaysDev/dockermgr/aria2"
|
||||||
|
cp -Rfva "$HOME/.local/share/CasjaysDev/dockermgr/aria2/rootfs/." "$dockerHome/"
|
||||||
|
docker run -d \
|
||||||
|
--restart always \
|
||||||
|
--privileged \
|
||||||
|
--name casjaysdevdocker-aria2-latest \
|
||||||
|
--hostname aria2 \
|
||||||
|
-e TZ=${TIMEZONE:-America/New_York} \
|
||||||
|
-v "$dockerHome/data:/data:z" \
|
||||||
|
-v "$dockerHome/config:/config:z" \
|
||||||
|
-p 80:80 \
|
||||||
|
casjaysdevdocker/aria2:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
## via docker-compose
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: "2"
|
||||||
|
services:
|
||||||
|
ProjectName:
|
||||||
|
image: casjaysdevdocker/aria2
|
||||||
|
container_name: casjaysdevdocker-aria2
|
||||||
|
environment:
|
||||||
|
- TZ=America/New_York
|
||||||
|
- HOSTNAME=aria2
|
||||||
|
volumes:
|
||||||
|
- "/var/lib/srv/$USER/docker/casjaysdevdocker/aria2/aria2/latest/rootfs/data:/data:z"
|
||||||
|
- "/var/lib/srv/$USER/docker/casjaysdevdocker/aria2/aria2/latest/rootfs/config:/config:z"
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
restart: always
|
||||||
|
```
|
||||||
|
|
||||||
## Get source files
|
## Get source files
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
dockermgr download src aria2
|
dockermgr download src casjaysdevdocker/aria2
|
||||||
```
|
```
|
||||||
|
|
||||||
OR
|
OR
|
||||||
@ -31,6 +75,5 @@ buildx
|
|||||||
|
|
||||||
## Authors
|
## Authors
|
||||||
|
|
||||||
📽 dockermgr: [Github](https://github.com/dockermgr) 📽
|
🤖 casjay: [Github](https://github.com/casjay) 🤖
|
||||||
🤖 casjay: [Github](https://github.com/casjay) [Docker](https://hub.docker.com/r/casjay) 🤖
|
⛵ casjaysdevdocker: [Github](https://github.com/casjaysdevdocker) [Docker](https://hub.docker.com/u/casjaysdevdocker) ⛵
|
||||||
⛵ CasjaysDevDocker: [Github](https://github.com/casjaysdevdocker) [Docker](https://hub.docker.com/r/casjaysdevdocker) ⛵
|
|
||||||
|
40
rootfs/root/docker/setup/00-init.sh
Executable file
40
rootfs/root/docker/setup/00-init.sh
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
##@Version : 202505131551-git
|
||||||
|
# @@Author : CasjaysDev
|
||||||
|
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
||||||
|
# @@License : MIT
|
||||||
|
# @@ReadME :
|
||||||
|
# @@Copyright : Copyright 2023 CasjaysDev
|
||||||
|
# @@Created : Mon Aug 28 06:48:42 PM EDT 2023
|
||||||
|
# @@File : 00-init.sh
|
||||||
|
# @@Description : script to run init
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
# shellcheck disable=SC2031
|
||||||
|
# shellcheck disable=SC2120
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
# shellcheck disable=SC2199
|
||||||
|
# shellcheck disable=SC2317
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set bash options
|
||||||
|
set -o pipefail
|
||||||
|
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -x$DEBUGGER_OPTIONS
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set env variables
|
||||||
|
exitCode=0
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Predefined actions
|
||||||
|
if [ -d "/usr/local/share/template-files/data" ]; then rm -Rf "/usr/local/share/template-files/data"/*; fi
|
||||||
|
if [ -d "/usr/local/share/template-files/config" ]; then rm -Rf "/usr/local/share/template-files/config"/*; fi
|
||||||
|
if [ -d "/usr/local/share/template-files/defaults" ]; then rm -Rf "/usr/local/share/template-files/defaults"/*; fi
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Main script
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set the exit code
|
||||||
|
#exitCode=$?
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
exit $exitCode
|
38
rootfs/root/docker/setup/01-system.sh
Executable file
38
rootfs/root/docker/setup/01-system.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
##@Version : 202505131551-git
|
||||||
|
# @@Author : CasjaysDev
|
||||||
|
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
||||||
|
# @@License : MIT
|
||||||
|
# @@ReadME :
|
||||||
|
# @@Copyright : Copyright 2023 CasjaysDev
|
||||||
|
# @@Created : Mon Aug 28 06:48:42 PM EDT 2023
|
||||||
|
# @@File : 01-system.sh
|
||||||
|
# @@Description : script to run system
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
# shellcheck disable=SC2031
|
||||||
|
# shellcheck disable=SC2120
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
# shellcheck disable=SC2199
|
||||||
|
# shellcheck disable=SC2317
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set bash options
|
||||||
|
set -o pipefail
|
||||||
|
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -x$DEBUGGER_OPTIONS
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set env variables
|
||||||
|
exitCode=0
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Predefined actions
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Main script
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set the exit code
|
||||||
|
#exitCode=$?
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
exit $exitCode
|
38
rootfs/root/docker/setup/02-packages.sh
Executable file
38
rootfs/root/docker/setup/02-packages.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
##@Version : 202505131551-git
|
||||||
|
# @@Author : CasjaysDev
|
||||||
|
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
||||||
|
# @@License : MIT
|
||||||
|
# @@ReadME :
|
||||||
|
# @@Copyright : Copyright 2023 CasjaysDev
|
||||||
|
# @@Created : Mon Aug 28 06:48:42 PM EDT 2023
|
||||||
|
# @@File : 02-packages.sh
|
||||||
|
# @@Description : script to run packages
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
# shellcheck disable=SC2031
|
||||||
|
# shellcheck disable=SC2120
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
# shellcheck disable=SC2199
|
||||||
|
# shellcheck disable=SC2317
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set bash options
|
||||||
|
set -o pipefail
|
||||||
|
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -x$DEBUGGER_OPTIONS
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set env variables
|
||||||
|
exitCode=0
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Predefined actions
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Main script
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set the exit code
|
||||||
|
#exitCode=$?
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
exit $exitCode
|
89
rootfs/root/docker/setup/03-files.sh
Executable file
89
rootfs/root/docker/setup/03-files.sh
Executable file
@ -0,0 +1,89 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
##@Version : 202408270903-git
|
||||||
|
# @@Author : CasjaysDev
|
||||||
|
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
||||||
|
# @@License : MIT
|
||||||
|
# @@ReadME :
|
||||||
|
# @@Copyright : Copyright 2023 CasjaysDev
|
||||||
|
# @@Created : Mon Aug 28 06:48:42 PM EDT 2023
|
||||||
|
# @@File : 03-files.sh
|
||||||
|
# @@Description : script to run files
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
# shellcheck disable=SC2031
|
||||||
|
# shellcheck disable=SC2120
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
# shellcheck disable=SC2199
|
||||||
|
# shellcheck disable=SC2317
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set bash options
|
||||||
|
set -o pipefail
|
||||||
|
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -x$DEBUGGER_OPTIONS
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set env variables
|
||||||
|
exitCode=0
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Predefined actions
|
||||||
|
if [ -d "/tmp/bin" ]; then
|
||||||
|
mkdir -p "/usr/local/bin"
|
||||||
|
for bin in "/tmp/bin"/*; do
|
||||||
|
name="$(basename -- "$bin")"
|
||||||
|
echo "Installing $name to /usr/local/bin/$name"
|
||||||
|
copy "$bin" "/usr/local/bin/$name"
|
||||||
|
chmod -f +x "/usr/local/bin/$name"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
unset bin
|
||||||
|
if [ -d "/tmp/var" ]; then
|
||||||
|
for var in "/tmp/var"/*; do
|
||||||
|
name="$(basename -- "$var")"
|
||||||
|
echo "Installing $var to /var/$name"
|
||||||
|
if [ -d "$var" ]; then
|
||||||
|
mkdir -p "/var/$name"
|
||||||
|
copy "$var/." "/var/$name/"
|
||||||
|
else
|
||||||
|
copy "$var" "/var/$name"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
unset var
|
||||||
|
if [ -d "/tmp/etc" ]; then
|
||||||
|
for config in "/tmp/etc"/*; do
|
||||||
|
name="$(basename -- "$config")"
|
||||||
|
echo "Installing $config to /etc/$name"
|
||||||
|
if [ -d "$config" ]; then
|
||||||
|
mkdir -p "/etc/$name"
|
||||||
|
copy "$config/." "/etc/$name/"
|
||||||
|
mkdir -p "/usr/local/share/template-files/config/$name"
|
||||||
|
copy "$config/." "/usr/local/share/template-files/config/$name/"
|
||||||
|
else
|
||||||
|
copy "$config" "/etc/$name"
|
||||||
|
copy "$config" "/usr/local/share/template-files/config/$name"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
unset config
|
||||||
|
if [ -d "/tmp/data" ]; then
|
||||||
|
for data in "/tmp/data"/*; do
|
||||||
|
name="$(basename -- "$data")"
|
||||||
|
echo "Installing $data to /usr/local/share/template-files/data"
|
||||||
|
if [ -d "$data" ]; then
|
||||||
|
mkdir -p "/usr/local/share/template-files/data/$name"
|
||||||
|
copy "$data/." "/usr/local/share/template-files/data/$name/"
|
||||||
|
else
|
||||||
|
copy "$data" "/usr/local/share/template-files/data/$name"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
unset data
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Main script
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set the exit code
|
||||||
|
#exitCode=$?
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
exit $exitCode
|
38
rootfs/root/docker/setup/04-users.sh
Executable file
38
rootfs/root/docker/setup/04-users.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
##@Version : 202505131551-git
|
||||||
|
# @@Author : CasjaysDev
|
||||||
|
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
||||||
|
# @@License : MIT
|
||||||
|
# @@ReadME :
|
||||||
|
# @@Copyright : Copyright 2023 CasjaysDev
|
||||||
|
# @@Created : Mon Aug 28 06:48:42 PM EDT 2023
|
||||||
|
# @@File : 04-users.sh
|
||||||
|
# @@Description : script to run users
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
# shellcheck disable=SC2031
|
||||||
|
# shellcheck disable=SC2120
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
# shellcheck disable=SC2199
|
||||||
|
# shellcheck disable=SC2317
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set bash options
|
||||||
|
set -o pipefail
|
||||||
|
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -x$DEBUGGER_OPTIONS
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set env variables
|
||||||
|
exitCode=0
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Predefined actions
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Main script
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set the exit code
|
||||||
|
#exitCode=$?
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
exit $exitCode
|
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
##@Version : 202501061127-git
|
##@Version : 202505131551-git
|
||||||
# @@Author : CasjaysDev
|
# @@Author : CasjaysDev
|
||||||
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
||||||
# @@License : MIT
|
# @@License : MIT
|
||||||
@ -31,7 +31,8 @@ ARIANG_LASTEST="$(curl -q -LSsf "https://api.github.com/repos/mayswind/AriaNg/re
|
|||||||
ARIANG_ARCHIVE_FILE="https://github.com/mayswind/AriaNg/releases/download/${ARIANG_LASTEST:-$ARIANG_VERSION}/AriaNg-${ARIANG_LASTEST:-$ARIANG_VERSION}.zip"
|
ARIANG_ARCHIVE_FILE="https://github.com/mayswind/AriaNg/releases/download/${ARIANG_LASTEST:-$ARIANG_VERSION}/AriaNg-${ARIANG_LASTEST:-$ARIANG_VERSION}.zip"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Predefined actions
|
# Predefined actions
|
||||||
[ -d "$ARIANG_HOME" ] || mkdir -p "$ARIANG_HOME"
|
\rm -Rf "${ARIANG_HOME:?}"
|
||||||
|
\mkdir -p "${ARIANG_HOME:?}"
|
||||||
if curl -q -LSsf "$ARIANG_ARCHIVE_FILE" -o "$ARIANG_TEMP_FILE"; then
|
if curl -q -LSsf "$ARIANG_ARCHIVE_FILE" -o "$ARIANG_TEMP_FILE"; then
|
||||||
unzip -qq "$ARIANG_TEMP_FILE" -d "$ARIANG_HOME"
|
unzip -qq "$ARIANG_TEMP_FILE" -d "$ARIANG_HOME"
|
||||||
exitCode=$?
|
exitCode=$?
|
||||||
|
38
rootfs/root/docker/setup/06-post.sh
Executable file
38
rootfs/root/docker/setup/06-post.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
##@Version : 202505131551-git
|
||||||
|
# @@Author : CasjaysDev
|
||||||
|
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
||||||
|
# @@License : MIT
|
||||||
|
# @@ReadME :
|
||||||
|
# @@Copyright : Copyright 2023 CasjaysDev
|
||||||
|
# @@Created : Mon Aug 28 06:48:42 PM EDT 2023
|
||||||
|
# @@File : 06-post.sh
|
||||||
|
# @@Description : script to run post
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
# shellcheck disable=SC2031
|
||||||
|
# shellcheck disable=SC2120
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
# shellcheck disable=SC2199
|
||||||
|
# shellcheck disable=SC2317
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set bash options
|
||||||
|
set -o pipefail
|
||||||
|
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -x$DEBUGGER_OPTIONS
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set env variables
|
||||||
|
exitCode=0
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Predefined actions
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Main script
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set the exit code
|
||||||
|
#exitCode=$?
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
exit $exitCode
|
39
rootfs/root/docker/setup/07-cleanup.sh
Executable file
39
rootfs/root/docker/setup/07-cleanup.sh
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
##@Version : 202505131551-git
|
||||||
|
# @@Author : CasjaysDev
|
||||||
|
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
||||||
|
# @@License : MIT
|
||||||
|
# @@ReadME :
|
||||||
|
# @@Copyright : Copyright 2023 CasjaysDev
|
||||||
|
# @@Created : Mon Aug 28 06:48:42 PM EDT 2023
|
||||||
|
# @@File : 07-cleanup.sh
|
||||||
|
# @@Description : script to run cleanup
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
# shellcheck disable=SC2031
|
||||||
|
# shellcheck disable=SC2120
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
# shellcheck disable=SC2199
|
||||||
|
# shellcheck disable=SC2317
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set bash options
|
||||||
|
set -o pipefail
|
||||||
|
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -x$DEBUGGER_OPTIONS
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set env variables
|
||||||
|
exitCode=0
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Predefined actions
|
||||||
|
if [ -d "/tmp" ]; then rm -Rf "/tmp"/*; fi
|
||||||
|
if [ -d "$HOME/.cache" ]; then rm -Rf "$HOME/.cache"; fi
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Main script
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set the exit code
|
||||||
|
#exitCode=$?
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
exit $exitCode
|
@ -25,7 +25,7 @@ save-session-interval=10
|
|||||||
max-upload-limit=0
|
max-upload-limit=0
|
||||||
|
|
||||||
follow-torrent=true
|
follow-torrent=true
|
||||||
listen-port=51413
|
listen-port=6881
|
||||||
user-agent=Transmission/2.77
|
user-agent=Transmission/2.77
|
||||||
seed-ratio=0
|
seed-ratio=0
|
||||||
bt-seed-unverified=false
|
bt-seed-unverified=false
|
@ -1,13 +1,13 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
##@Version : 202408011327-git
|
##@Version : 202505131551-git
|
||||||
# @@Author : Jason Hempstead
|
# @@Author : Jason Hempstead
|
||||||
# @@Contact : jason@casjaysdev.pro
|
# @@Contact : jason@casjaysdev.pro
|
||||||
# @@License : WTFPL
|
# @@License : WTFPL
|
||||||
# @@ReadME : entrypoint.sh --help
|
# @@ReadME : entrypoint.sh --help
|
||||||
# @@Copyright : Copyright: (c) 2024 Jason Hempstead, Casjays Developments
|
# @@Copyright : Copyright: (c) 2025 Jason Hempstead, Casjays Developments
|
||||||
# @@Created : Thursday, Aug 01, 2024 13:27 EDT
|
# @@Created : Tuesday, May 13, 2025 15:51 EDT
|
||||||
# @@File : entrypoint.sh
|
# @@File : entrypoint.sh
|
||||||
# @@Description : Entrypoint file for aria2
|
# @@Description : Entrypoint file for aria2
|
||||||
# @@Changelog : New script
|
# @@Changelog : New script
|
||||||
@ -18,12 +18,7 @@
|
|||||||
# @@sudo/root : no
|
# @@sudo/root : no
|
||||||
# @@Template : other/docker-entrypoint
|
# @@Template : other/docker-entrypoint
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC1003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317
|
||||||
# shellcheck disable=SC2031
|
|
||||||
# shellcheck disable=SC2120
|
|
||||||
# shellcheck disable=SC2155
|
|
||||||
# shellcheck disable=SC2199
|
|
||||||
# shellcheck disable=SC2317
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# setup debugging - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
|
# setup debugging - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
|
||||||
[ -f "/config/.debug" ] && [ -z "$DEBUGGER_OPTIONS" ] && export DEBUGGER_OPTIONS="$(<"/config/.debug")" || DEBUGGER_OPTIONS="${DEBUGGER_OPTIONS:-}"
|
[ -f "/config/.debug" ] && [ -z "$DEBUGGER_OPTIONS" ] && export DEBUGGER_OPTIONS="$(<"/config/.debug")" || DEBUGGER_OPTIONS="${DEBUGGER_OPTIONS:-}"
|
||||||
@ -34,7 +29,7 @@ PATH="/usr/local/etc/docker/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin"
|
|||||||
# Set bash options
|
# Set bash options
|
||||||
SCRIPT_FILE="$0"
|
SCRIPT_FILE="$0"
|
||||||
CONTAINER_NAME="aria2"
|
CONTAINER_NAME="aria2"
|
||||||
SCRIPT_NAME="$(basename "$SCRIPT_FILE" 2>/dev/null)"
|
SCRIPT_NAME="$(basename -- "$SCRIPT_FILE" 2>/dev/null)"
|
||||||
CONTAINER_NAME="${ENV_CONTAINER_NAME:-$CONTAINER_NAME}"
|
CONTAINER_NAME="${ENV_CONTAINER_NAME:-$CONTAINER_NAME}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# remove whitespaces from beginning argument
|
# remove whitespaces from beginning argument
|
||||||
@ -53,13 +48,16 @@ fi
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
case "$1" in
|
case "$1" in
|
||||||
# Help message
|
# Help message
|
||||||
--help)
|
-h | --help)
|
||||||
shift 1
|
shift 1
|
||||||
echo 'Docker container for '$CONTAINER_NAME''
|
echo 'Docker container for '$CONTAINER_NAME''
|
||||||
echo "Usage: $CONTAINER_NAME [cron exec start init shell certbot ssl procs ports healthcheck backup command]"
|
echo "Usage: $CONTAINER_NAME [cron exec start init shell certbot ssl procs ports healthcheck backup command]"
|
||||||
echo ""
|
echo ""
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
|
-*)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Create the default env files
|
# Create the default env files
|
||||||
@ -69,23 +67,28 @@ __create_env_file "/config/env/default.sh" "/root/env.sh" &>/dev/null
|
|||||||
for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do
|
for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.sh; do
|
||||||
[ -f "$set_env" ] && . "$set_env"
|
[ -f "$set_env" ] && . "$set_env"
|
||||||
done
|
done
|
||||||
|
unset set_env
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Define script variables
|
# User to use to launch service - IE: postgres
|
||||||
RUNAS_USER="" # Default is root
|
RUNAS_USER="root" # normally root
|
||||||
SERVICE_UID="" # set the user id
|
|
||||||
SERVICE_GID="" # set the group id
|
|
||||||
SERVICE_USER="" # execute command as another user
|
|
||||||
SERVICE_GROUP="" # Set the service group
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Primary server port- will be added to server ports
|
# Set user and group from env
|
||||||
WEB_SERVER_PORT="" # port : 80,443
|
SERVICE_USER="${PUID:-$SERVICE_USER}"
|
||||||
|
SERVICE_GROUP="${PGID:-$SERVICE_GROUP}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set user and group ID
|
||||||
|
SERVICE_UID="${SERVICE_UID:-0}" # set the user id
|
||||||
|
SERVICE_GID="${SERVICE_GID:-0}" # set the group id
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# User and group in which the service switches to - IE: nginx,apache,mysql,postgres
|
||||||
|
SERVICE_USER="${SERVICE_USER:-$aria2}" # execute command as another user
|
||||||
|
SERVICE_GROUP="${SERVICE_GROUP:-aria2}" # Set the service group
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Secondary ports
|
# Secondary ports
|
||||||
SERVER_PORTS="" # specifiy other ports
|
SERVER_PORTS="" # specifiy other ports
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Server directories
|
# Primary server port- will be added to server ports
|
||||||
WWW_ROOT_DIR="" # set default web dir
|
WEB_SERVER_PORT="" # port : 80,443
|
||||||
DATABASE_DIR="" # set database dir
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Healthcheck variables
|
# Healthcheck variables
|
||||||
HEALTH_ENABLED="yes" # enable healthcheck [yes/no]
|
HEALTH_ENABLED="yes" # enable healthcheck [yes/no]
|
||||||
@ -93,7 +96,7 @@ SERVICES_LIST="tini" # comma seperated list of processes for the healthcheck
|
|||||||
HEALTH_ENDPOINTS="" # url endpoints: [http://localhost/health,http://localhost/test]
|
HEALTH_ENDPOINTS="" # url endpoints: [http://localhost/health,http://localhost/test]
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Update path var
|
# Update path var
|
||||||
export PATH="${PATH:-}"
|
export PATH RUNAS_USER SERVICE_USER SERVICE_GROUP SERVICE_UID SERVICE_GID WWW_ROOT_DIR DATABASE_DIR
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Custom variables
|
# Custom variables
|
||||||
|
|
||||||
@ -105,11 +108,15 @@ __run_message() {
|
|||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
################## END OF CONFIGURATION #####################
|
################## END OF CONFIGURATION #####################
|
||||||
|
# Lets get containers ip address
|
||||||
|
IP4_ADDRESS="$(__get_ip4)"
|
||||||
|
IP6_ADDRESS="$(__get_ip6)"
|
||||||
|
CONTAINER_IP4_ADDRESS="${CONTAINER_IP4_ADDRESS:-$IP4_ADDRESS}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Startup variables
|
# Startup variables
|
||||||
export INIT_DATE="${INIT_DATE:-$(date)}"
|
export INIT_DATE="${INIT_DATE:-$(date)}"
|
||||||
export CONTAINER_INIT="${CONTAINER_INIT:-no}"
|
export CONTAINER_INIT="${CONTAINER_INIT:-no}"
|
||||||
export START_SERVICES="${START_SERVICES:-yes}"
|
export START_SERVICES="${START_SERVICES:-no}"
|
||||||
export ENTRYPOINT_MESSAGE="${ENTRYPOINT_MESSAGE:-yes}"
|
export ENTRYPOINT_MESSAGE="${ENTRYPOINT_MESSAGE:-yes}"
|
||||||
export ENTRYPOINT_FIRST_RUN="${ENTRYPOINT_FIRST_RUN:-yes}"
|
export ENTRYPOINT_FIRST_RUN="${ENTRYPOINT_FIRST_RUN:-yes}"
|
||||||
export DATA_DIR_INITIALIZED="${DATA_DIR_INITIALIZED:-no}"
|
export DATA_DIR_INITIALIZED="${DATA_DIR_INITIALIZED:-no}"
|
||||||
@ -120,19 +127,24 @@ export CONTAINER_NAME="${ENV_CONTAINER_NAME:-$CONTAINER_NAME}"
|
|||||||
export LANG="${LANG:-C.UTF-8}"
|
export LANG="${LANG:-C.UTF-8}"
|
||||||
export LC_ALL="${LANG:-C.UTF-8}"
|
export LC_ALL="${LANG:-C.UTF-8}"
|
||||||
export TZ="${TZ:-${TIMEZONE:-America/New_York}}"
|
export TZ="${TZ:-${TIMEZONE:-America/New_York}}"
|
||||||
export HOSTNAME="${FULL_DOMAIN_NAME:-${SERVER_HOSTNAME:-$HOSTNAME}}"
|
export HOSTNAME="$(hostname -s)"
|
||||||
|
export DOMAINNAME="$(hostname -d)"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Default directories
|
# Default directories
|
||||||
export SSL_DIR="${SSL_DIR:-/config/ssl}"
|
export SSL_DIR="${SSL_DIR:-/config/ssl}"
|
||||||
export SSL_CA="${SSL_CERT:-/config/ssl/ca.crt}"
|
export SSL_CA="${SSL_CERT:-/config/ssl/ca.crt}"
|
||||||
export SSL_KEY="${SSL_KEY:-/config/ssl/localhost.pem}"
|
export SSL_KEY="${SSL_KEY:-/config/ssl/localhost.pem}"
|
||||||
export SSL_CERT="${SSL_CERT:-/config/ssl/localhost.crt}"
|
export SSL_CERT="${SSL_CERT:-/config/ssl/localhost.crt}"
|
||||||
export BACKUP_DIR="${BACKUP_DIR:-/data/backups}"
|
|
||||||
export LOCAL_BIN_DIR="${LOCAL_BIN_DIR:-/usr/local/bin}"
|
export LOCAL_BIN_DIR="${LOCAL_BIN_DIR:-/usr/local/bin}"
|
||||||
export DEFAULT_DATA_DIR="${DEFAULT_DATA_DIR:-/usr/local/share/template-files/data}"
|
export DEFAULT_DATA_DIR="${DEFAULT_DATA_DIR:-/usr/local/share/template-files/data}"
|
||||||
export DEFAULT_CONF_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/config}"
|
export DEFAULT_CONF_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/config}"
|
||||||
export DEFAULT_TEMPLATE_DIR="${DEFAULT_TEMPLATE_DIR:-/usr/local/share/template-files/defaults}"
|
export DEFAULT_TEMPLATE_DIR="${DEFAULT_TEMPLATE_DIR:-/usr/local/share/template-files/defaults}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Backup settings
|
||||||
|
export BACKUP_MAX_DAYS="${BACKUP_MAX_DAYS:-}"
|
||||||
|
export BACKUP_RUN_CRON="${BACKUP_RUN_CRON:-}"
|
||||||
|
export BACKUP_DIR="${BACKUP_DIR:-/data/backups}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Additional
|
# Additional
|
||||||
export PHP_INI_DIR="${PHP_INI_DIR:-$(__find_php_ini)}"
|
export PHP_INI_DIR="${PHP_INI_DIR:-$(__find_php_ini)}"
|
||||||
export PHP_BIN_DIR="${PHP_BIN_DIR:-$(__find_php_bin)}"
|
export PHP_BIN_DIR="${PHP_BIN_DIR:-$(__find_php_bin)}"
|
||||||
@ -141,19 +153,26 @@ export NGINX_CONFIG_FILE="${NGINX_CONFIG_FILE:-$(__find_nginx_conf)}"
|
|||||||
export MYSQL_CONFIG_FILE="${MYSQL_CONFIG_FILE:-$(__find_mysql_conf)}"
|
export MYSQL_CONFIG_FILE="${MYSQL_CONFIG_FILE:-$(__find_mysql_conf)}"
|
||||||
export PGSQL_CONFIG_FILE="${PGSQL_CONFIG_FILE:-$(__find_pgsql_conf)}"
|
export PGSQL_CONFIG_FILE="${PGSQL_CONFIG_FILE:-$(__find_pgsql_conf)}"
|
||||||
export MONGODB_CONFIG_FILE="${MONGODB_CONFIG_FILE:-$(__find_mongodb_conf)}"
|
export MONGODB_CONFIG_FILE="${MONGODB_CONFIG_FILE:-$(__find_mongodb_conf)}"
|
||||||
export ENTRYPOINT_PID_FILE="${ENTRYPOINT_PID_FILE:-/run/init.d/entrypoint.pid}"
|
export ENTRYPOINT_PID_FILE="${ENTRYPOINT_PID_FILE:-$ENTRYPOINT_PID_FILE}"
|
||||||
export ENTRYPOINT_INIT_FILE="${ENTRYPOINT_INIT_FILE:-/config/.entrypoint.done}"
|
export ENTRYPOINT_INIT_FILE="${ENTRYPOINT_INIT_FILE:-/config/.entrypoint.done}"
|
||||||
export ENTRYPOINT_DATA_INIT_FILE="${ENTRYPOINT_DATA_INIT_FILE:-/data/.docker_has_run}"
|
export ENTRYPOINT_DATA_INIT_FILE="${ENTRYPOINT_DATA_INIT_FILE:-/data/.docker_has_run}"
|
||||||
export ENTRYPOINT_CONFIG_INIT_FILE="${ENTRYPOINT_CONFIG_INIT_FILE:-/config/.docker_has_run}"
|
export ENTRYPOINT_CONFIG_INIT_FILE="${ENTRYPOINT_CONFIG_INIT_FILE:-/config/.docker_has_run}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
if [ -f "$ENTRYPOINT_PID_FILE" ] || [ -f "$ENTRYPOINT_INIT_FILE" ]; then
|
if [ -n "$CONTAINER_WEB_SERVER_WWW_REPO" ]; then
|
||||||
START_SERVICES="no" ENTRYPOINT_MESSAGE="no" ENTRYPOINT_FIRST_RUN="no"
|
www_temp_dir="/tmp/git/$(basename -- "$CONTAINER_WEB_SERVER_WWW_REPO")"
|
||||||
|
rm -Rf "${WWW_ROOT_DIR:?}"/* "${www_temp_dir:?}"/*
|
||||||
|
mkdir -p "$WWW_ROOT_DIR" "$www_temp_dir"
|
||||||
|
git clone -q "$CONTAINER_WEB_SERVER_WWW_REPO" "$www_temp_dir" 2>/dev/null
|
||||||
|
rm -Rf "$www_temp_dir/.git" "$www_temp_dir"/.git*
|
||||||
|
rsync -ra "$www_temp_dir/" "$WWW_ROOT_DIR" --delete >/dev/null 2>&1
|
||||||
|
rm -Rf "$www_temp_dir"
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# variables based on env/files
|
# variables based on env/files
|
||||||
[ -f "/config/enable/ssl" ] && SSL_ENABLED="yes"
|
[ -f "/config/enable/ssl" ] && SSL_ENABLED="yes"
|
||||||
[ -f "/config/enable/ssh" ] && SSH_ENABLED="yes"
|
[ -f "/config/enable/ssh" ] && SSH_ENABLED="yes"
|
||||||
[ "$WEB_SERVER_PORT" = "443" ] && SSL_ENABLED="yes"
|
[ "$WEB_SERVER_PORT" = "443" ] && SSL_ENABLED="yes"
|
||||||
|
[ "$CONTAINER_WEB_SERVER_PROTOCOL" = "https" ] && SSL_ENABLED="yes"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# export variables
|
# export variables
|
||||||
|
|
||||||
@ -181,7 +200,7 @@ ENV_PORTS="$(__format_variables "$ENV_PORTS" || false)"
|
|||||||
WEB_SERVER_PORTS="$(__format_variables "$WEB_SERVER_PORTS" || false)"
|
WEB_SERVER_PORTS="$(__format_variables "$WEB_SERVER_PORTS" || false)"
|
||||||
ENV_PORTS="$(__format_variables "$SERVER_PORTS" "$WEB_SERVER_PORTS" "$ENV_PORTS" "$SERVER_PORTS" || false)"
|
ENV_PORTS="$(__format_variables "$SERVER_PORTS" "$WEB_SERVER_PORTS" "$ENV_PORTS" "$SERVER_PORTS" || false)"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
#
|
# Remove the commas from env
|
||||||
HEALTH_ENDPOINTS="${HEALTH_ENDPOINTS//,/ }"
|
HEALTH_ENDPOINTS="${HEALTH_ENDPOINTS//,/ }"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# create required directories
|
# create required directories
|
||||||
@ -229,6 +248,16 @@ EOF
|
|||||||
# Create the backup dir
|
# Create the backup dir
|
||||||
[ -n "$BACKUP_DIR" ] && { [ -d "$BACKUP_DIR" ] || mkdir -p "$BACKUP_DIR"; }
|
[ -n "$BACKUP_DIR" ] && { [ -d "$BACKUP_DIR" ] || mkdir -p "$BACKUP_DIR"; }
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
if [ -f "$ENTRYPOINT_PID_FILE" ]; then
|
||||||
|
START_SERVICES="no"
|
||||||
|
touch "$ENTRYPOINT_PID_FILE"
|
||||||
|
else
|
||||||
|
echo "$$" >"$ENTRYPOINT_PID_FILE"
|
||||||
|
fi
|
||||||
|
if [ -f "$ENTRYPOINT_INIT_FILE" ]; then
|
||||||
|
ENTRYPOINT_MESSAGE="no" ENTRYPOINT_FIRST_RUN="no"
|
||||||
|
fi
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
if [ "$ENTRYPOINT_FIRST_RUN" != "no" ]; then
|
if [ "$ENTRYPOINT_FIRST_RUN" != "no" ]; then
|
||||||
# Show start message
|
# Show start message
|
||||||
if [ "$CONFIG_DIR_INITIALIZED" = "no" ] || [ "$DATA_DIR_INITIALIZED" = "no" ]; then
|
if [ "$CONFIG_DIR_INITIALIZED" = "no" ] || [ "$DATA_DIR_INITIALIZED" = "no" ]; then
|
||||||
@ -236,9 +265,9 @@ if [ "$ENTRYPOINT_FIRST_RUN" != "no" ]; then
|
|||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Set reusable variables
|
# Set reusable variables
|
||||||
{ { [ -w "/etc" ] && [ ! -e "/etc/hosts" ]; } || [ -w "/etc/hosts" ]; } && UPDATE_FILE_HOSTS="yes"
|
{ { [ -w "/etc" ] && [ ! -f "/etc/hosts" ]; } || [ -w "/etc/hosts" ]; } && UPDATE_FILE_HOSTS="yes" && touch "/etc/hosts"
|
||||||
{ { [ -w "/etc" ] && [ ! -e "/etc/timezone" ]; } || [ -w "/etc/timezone" ]; } && UPDATE_FILE_TZ="yes"
|
{ { [ -w "/etc" ] && [ ! -f "/etc/timezone" ]; } || [ -w "/etc/timezone" ]; } && UPDATE_FILE_TZ="yes" && touch "/etc/timezone"
|
||||||
{ { [ -w "/etc" ] && [ ! -e "/etc/resolv.conf" ]; } || [ -w "/etc/resolv.conf" ]; } && UPDATE_FILE_RESOLV="yes"
|
{ { [ -w "/etc" ] && [ ! -f "/etc/resolv.conf" ]; } || [ -w "/etc/resolv.conf" ]; } && UPDATE_FILE_RESOLV="yes" && touch "/etc/resolv.conf"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Set timezone
|
# Set timezone
|
||||||
[ -n "$TZ" ] && [ "$UPDATE_FILE_TZ" = "yes" ] && echo "$TZ" >"/etc/timezone"
|
[ -n "$TZ" ] && [ "$UPDATE_FILE_TZ" = "yes" ] && echo "$TZ" >"/etc/timezone"
|
||||||
@ -255,23 +284,20 @@ if [ "$ENTRYPOINT_FIRST_RUN" != "no" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# add .home domain
|
# add .internal domain
|
||||||
if [ "$UPDATE_FILE_HOSTS" = "yes" ] && [ -n "$HOSTNAME" ]; then
|
if [ "$UPDATE_FILE_HOSTS" = "yes" ] && [ -n "$HOSTNAME" ]; then
|
||||||
__grep_test " $HOSTNAME" "/etc/hosts" || __printf_space "40" "${CONTAINER_IP4_ADDRESS:-127.0.0.1}" "$HOSTNAME" >>"/etc/hosts"
|
__grep_test " $HOSTNAME" "/etc/hosts" || __printf_space "40" "${CONTAINER_IP4_ADDRESS:-127.0.0.1}" "$HOSTNAME" >>"/etc/hosts"
|
||||||
__grep_test " ${HOSTNAME%%.*}.home" "/etc/hosts" || __printf_space "40" "${CONTAINER_IP4_ADDRESS:-127.0.0.1}" "${HOSTNAME%%.*}.home" >>"/etc/hosts"
|
__grep_test " ${HOSTNAME%%.*}.internal" "/etc/hosts" || __printf_space "40" "${CONTAINER_IP4_ADDRESS:-127.0.0.1}" "${HOSTNAME%%.*}.internal" >>"/etc/hosts"
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# add domainname
|
# add domainname
|
||||||
if [ "$UPDATE_FILE_HOSTS" = "yes" ] && [ "$DOMAINNAME" != "home" ] && [ -n "$DOMAINNAME" ] && [ "$HOSTNAME.$DOMAINNAME" != "$DOMAINNAME" ]; then
|
if [ "$UPDATE_FILE_HOSTS" = "yes" ] && [ "$DOMAINNAME" != "internal" ] && [ -n "$DOMAINNAME" ] && [ "$HOSTNAME.$DOMAINNAME" != "$DOMAINNAME" ]; then
|
||||||
__grep_test " ${HOSTNAME%%.*}.$DOMAINNAME" "/etc/hosts" || __printf_space "40" "${CONTAINER_IP4_ADDRESS:-127.0.0.1}" "${HOSTNAME%%.*}.$DOMAINNAME" >>"/etc/hosts"
|
__grep_test " ${HOSTNAME%%.*}.$DOMAINNAME" "/etc/hosts" || __printf_space "40" "${CONTAINER_IP4_ADDRESS:-127.0.0.1}" "${HOSTNAME%%.*}.$DOMAINNAME" >>"/etc/hosts"
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Set containers hostname
|
# Set containers hostname
|
||||||
[ -n "$HOSTNAME" ] && [ "$UPDATE_FILE_HOSTS" = "yes" ] && echo "$HOSTNAME" >"/etc/hostname"
|
[ -n "$HOSTNAME" ] && [ "$UPDATE_FILE_HOSTS" = "yes" ] && echo "$HOSTNAME" >"/etc/hostname"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Set containers hostname with domain
|
|
||||||
# [ -n "$DOMAINNAME" ] && [ "$UPDATE_FILE_HOSTS" = "yes" ] && echo "$HOSTNAME.$DOMAINNAME" >"/etc/hostname"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
if [ -f "/etc/hostname" ]; then
|
if [ -f "/etc/hostname" ]; then
|
||||||
[ -n "$(type -P hostname)" ] && hostname -F "/etc/hostname" &>/dev/null || HOSTNAME="$(<"/etc/hostname")"
|
[ -n "$(type -P hostname)" ] && hostname -F "/etc/hostname" &>/dev/null || HOSTNAME="$(<"/etc/hostname")"
|
||||||
export HOSTNAME
|
export HOSTNAME
|
||||||
@ -283,8 +309,8 @@ if [ "$ENTRYPOINT_FIRST_RUN" != "no" ]; then
|
|||||||
# import resolv.conf file into container
|
# import resolv.conf file into container
|
||||||
[ "$CUSTOM_DNS" != "yes" ] && [ -f "/usr/local/etc/resolv.conf" ] && [ "$UPDATE_FILE_RESOLV" = "yes" ] && cat "/usr/local/etc/resolv.conf" >"/etc/resolv.conf"
|
[ "$CUSTOM_DNS" != "yes" ] && [ -f "/usr/local/etc/resolv.conf" ] && [ "$UPDATE_FILE_RESOLV" = "yes" ] && cat "/usr/local/etc/resolv.conf" >"/etc/resolv.conf"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
if [ -d "/usr/local/etc/skel" ]; then
|
if [ -n "$HOME" ] && [ -d "/usr/local/etc/skel" ]; then
|
||||||
cp -Rf "/usr/local/etc/skel/." "$HOME/"
|
[ -d "$HOME" ] && cp -Rf "/usr/local/etc/skel/." "$HOME/"
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
fi
|
fi
|
||||||
@ -308,26 +334,28 @@ __initialize_data_dir
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__initialize_ssl_certs
|
__initialize_ssl_certs
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
if [ -f "$ENTRYPOINT_PID_FILE" ] || [ -f "$ENTRYPOINT_INIT_FILE" ]; then
|
if [ -f "$ENTRYPOINT_INIT_FILE" ]; then
|
||||||
START_SERVICES="no"
|
|
||||||
ENTRYPOINT_MESSAGE="no"
|
|
||||||
ENTRYPOINT_FIRST_RUN="no"
|
ENTRYPOINT_FIRST_RUN="no"
|
||||||
touch "$ENTRYPOINT_PID_FILE"
|
fi
|
||||||
elif [ -d "/config" ]; then
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
echo "$$" >"$ENTRYPOINT_PID_FILE"
|
if [ -d "/config" ]; then
|
||||||
echo "Initialized on: $INIT_DATE" >"$ENTRYPOINT_INIT_FILE"
|
echo "Initialized on: $INIT_DATE" >"$ENTRYPOINT_INIT_FILE"
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Check if this is a new container
|
# Check if this is a new container
|
||||||
if [ -f "$ENTRYPOINT_DATA_INIT_FILE" ]; then
|
if [ -f "$ENTRYPOINT_DATA_INIT_FILE" ]; then
|
||||||
DATA_DIR_INITIALIZED="yes"
|
DATA_DIR_INITIALIZED="yes"
|
||||||
elif [ -d "/data" ]; then
|
fi
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
if [ -d "/data" ]; then
|
||||||
echo "Initialized on: $INIT_DATE" >"$ENTRYPOINT_DATA_INIT_FILE"
|
echo "Initialized on: $INIT_DATE" >"$ENTRYPOINT_DATA_INIT_FILE"
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
if [ -f "$ENTRYPOINT_CONFIG_INIT_FILE" ]; then
|
if [ -f "$ENTRYPOINT_CONFIG_INIT_FILE" ]; then
|
||||||
CONFIG_DIR_INITIALIZED="yes"
|
CONFIG_DIR_INITIALIZED="yes"
|
||||||
elif [ -d "/config" ]; then
|
fi
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
if [ -d "/config" ]; then
|
||||||
echo "Initialized on: $INIT_DATE" >"$ENTRYPOINT_CONFIG_INIT_FILE"
|
echo "Initialized on: $INIT_DATE" >"$ENTRYPOINT_CONFIG_INIT_FILE"
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@ -352,6 +380,12 @@ fi
|
|||||||
# execute init script
|
# execute init script
|
||||||
if [ -f "/tmp/init" ]; then sh "/tmp/init"; fi
|
if [ -f "/tmp/init" ]; then sh "/tmp/init"; fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# create user if needed
|
||||||
|
__create_service_user "$SERVICE_USER" "$SERVICE_GROUP" "${WORK_DIR:-/home/$SERVICE_USER}" "${SERVICE_UID:-}" "${SERVICE_GID:-}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Modify user if needed
|
||||||
|
__set_user_group_id $SERVICE_USER ${SERVICE_UID:-} ${SERVICE_GID:-}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Show message
|
# Show message
|
||||||
__run_message
|
__run_message
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@ -359,11 +393,12 @@ __run_message
|
|||||||
START_SERVICES="${START_SERVICES:-SYSTEM_INIT}"
|
START_SERVICES="${START_SERVICES:-SYSTEM_INIT}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Start all services if no pidfile
|
# Start all services if no pidfile
|
||||||
if [ "$START_SERVICES" = "yes" ] && [ "$1" != "backup" ] && [ "$1" != "healthcheck" ]; then
|
if [ "$START_SERVICES" = "yes" ] && [ "$1" != "backup" ] && [ "$1" != "healthcheck" ] && [ "$1" != "cron" ] && [ "$1" != "logs" ] && [ "$1" != "cron" ]; then
|
||||||
[ "$1" = "start" ] && shift 1
|
[ "$1" = "start" ] && shift 1
|
||||||
[ "$1" = "all" ] && shift 1
|
[ "$1" = "all" ] && shift 1
|
||||||
[ "$1" = "init" ] && export CONTAINER_INIT="yes"
|
[ "$1" = "init" ] && export CONTAINER_INIT="yes"
|
||||||
echo "$$" >"/run/init.d/entrypoint.pid"
|
echo "$$" >"$ENTRYPOINT_PID_FILE"
|
||||||
|
rm -Rf "/run"/*/*pid
|
||||||
__start_init_scripts "/usr/local/etc/docker/init.d"
|
__start_init_scripts "/usr/local/etc/docker/init.d"
|
||||||
START_SERVICES="no"
|
START_SERVICES="no"
|
||||||
CONTAINER_INIT="${CONTAINER_INIT:-no}"
|
CONTAINER_INIT="${CONTAINER_INIT:-no}"
|
||||||
@ -376,36 +411,56 @@ init)
|
|||||||
echo "Container has been Initialized"
|
echo "Container has been Initialized"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
|
logs)
|
||||||
|
shift 1
|
||||||
|
case "$1" in
|
||||||
|
follow)
|
||||||
|
tail -Fq /data/logs/*/*
|
||||||
|
;;
|
||||||
|
clean)
|
||||||
|
log_files="$(find "/data/logs" -type f)"
|
||||||
|
for log in "${log_files[@]}"; do
|
||||||
|
echo "clearing $log"
|
||||||
|
printf '' >$log
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: logs [follow,clean]"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
cron)
|
cron)
|
||||||
shift 1
|
shift 1
|
||||||
__cron "$@" &
|
__cron "$@" &
|
||||||
|
echo "cron script is running with pid: $!"
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
# backup data and config dirs
|
# backup data and config dirs
|
||||||
backup)
|
backup)
|
||||||
shift 1
|
shift 1
|
||||||
save="${1:-$BACKUP_DIR}"
|
__backup $BACKUP_MAX_DAYS $1
|
||||||
backupExit=0
|
exit $?
|
||||||
date="$(date '+%Y%m%d-%H%M')"
|
|
||||||
file="$save/$date.tar.gz"
|
|
||||||
echo "Backing up /data /config to $file"
|
|
||||||
sleep 1
|
|
||||||
tar cfvz "$file" --exclude="$save" "/data" "/config" || false
|
|
||||||
backupExit=$?
|
|
||||||
[ $backupExit -eq 0 ] && echo "Backed up /data /config has finished" || echo "Backup of /data /config has failed"
|
|
||||||
exit $backupExit
|
|
||||||
;;
|
;;
|
||||||
# Docker healthcheck
|
# Docker healthcheck
|
||||||
healthcheck)
|
healthcheck)
|
||||||
|
arguments="$*"
|
||||||
healthStatus=0
|
healthStatus=0
|
||||||
services="${SERVICES_LIST:-$@}"
|
|
||||||
healthEnabled="${HEALTH_ENABLED:-}"
|
healthEnabled="${HEALTH_ENABLED:-}"
|
||||||
healthPorts="${WEB_SERVER_PORTS:-}"
|
healthPorts="${WEB_SERVER_PORTS:-}"
|
||||||
healthEndPoints="${HEALTH_ENDPOINTS:-}"
|
healthEndPoints="${HEALTH_ENDPOINTS:-}"
|
||||||
|
SERVICES_LIST="${arguments:-$SERVICES_LIST}"
|
||||||
|
services="$(echo "${SERVICES_LIST//,/ }")"
|
||||||
healthMessage="Everything seems to be running"
|
healthMessage="Everything seems to be running"
|
||||||
services="${services//,/ }"
|
|
||||||
[ "$healthEnabled" = "yes" ] || exit 0
|
[ "$healthEnabled" = "yes" ] || exit 0
|
||||||
|
if [ -d "/run/healthcheck" ] && [ "$(ls -A "/run/healthcheck" | wc -l)" -ne 0 ]; then
|
||||||
|
for service in /run/healthcheck/*; do
|
||||||
|
name=$(basename -- $service)
|
||||||
|
services+="$name "
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
services="$(echo "$services" | tr ' ' '\n' | sort -u | grep -v '^$')"
|
||||||
|
{ [ "$1" = "init" ] || [ "$1" = "test" ]; } && exit 0
|
||||||
for proc in $services; do
|
for proc in $services; do
|
||||||
if [ -n "$proc" ]; then
|
if [ -n "$proc" ]; then
|
||||||
if ! __pgrep "$proc"; then
|
if ! __pgrep "$proc"; then
|
||||||
@ -492,7 +547,7 @@ start)
|
|||||||
elif [ "$1" = "all" ]; then
|
elif [ "$1" = "all" ]; then
|
||||||
shift $#
|
shift $#
|
||||||
if [ "$START_SERVICES" = "yes" ]; then
|
if [ "$START_SERVICES" = "yes" ]; then
|
||||||
echo "$$" >"/run/init.d/entrypoint.pid"
|
echo "$$" >"$ENTRYPOINT_PID_FILE"
|
||||||
__start_init_scripts "/usr/local/etc/docker/init.d"
|
__start_init_scripts "/usr/local/etc/docker/init.d"
|
||||||
__no_exit
|
__no_exit
|
||||||
elif [ -f "/usr/local/etc/docker/init.d/$1" ]; then
|
elif [ -f "/usr/local/etc/docker/init.d/$1" ]; then
|
||||||
@ -505,8 +560,8 @@ start)
|
|||||||
# Execute primary command
|
# Execute primary command
|
||||||
*)
|
*)
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
if [ ! -f "/run/init.d/entrypoint.pid" ]; then
|
if [ ! -f "$ENTRYPOINT_PID_FILE" ]; then
|
||||||
echo "$$" >"/run/init.d/entrypoint.pid"
|
echo "$$" >"$ENTRYPOINT_PID_FILE"
|
||||||
[ "$START_SERVICES" = "no" ] && [ "$CONTAINER_INIT" = "yes" ] || __start_init_scripts "/usr/local/etc/docker/init.d"
|
[ "$START_SERVICES" = "no" ] && [ "$CONTAINER_INIT" = "yes" ] || __start_init_scripts "/usr/local/etc/docker/init.d"
|
||||||
fi
|
fi
|
||||||
__no_exit
|
__no_exit
|
||||||
|
142
rootfs/usr/local/bin/pkmgr
Executable file
142
rootfs/usr/local/bin/pkmgr
Executable file
@ -0,0 +1,142 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
# shellcheck shell=sh
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
USER_UID="$(id -u)"
|
||||||
|
USER_GID="$(id -g)"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
if [ -x "$(command -v apt 2>/dev/null)" ]; then
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
pkmgr_cmd="apt"
|
||||||
|
pkmgr_clean_cmd="$pkmgr_cmd clean"
|
||||||
|
pkmgr_mkcache_cmd="$pkmgr_cmd update"
|
||||||
|
pkmgr_update_cmd="$pkmgr_cmd upgrade -yy"
|
||||||
|
pkmgr_install_cmd="$pkmgr_cmd install -yy $PKMGR_OPTS"
|
||||||
|
pkmgr_install_post="$pkmgr_cmd --fix-broken install"
|
||||||
|
elif [ -x "$(command -v apt-get 2>/dev/null)" ]; then
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
pkmgr_cmd="apt-get"
|
||||||
|
pkmgr_clean_cmd="$pkmgr_cmd clean"
|
||||||
|
pkmgr_mkcache_cmd="$pkmgr_cmd update"
|
||||||
|
pkmgr_update_cmd="$pkmgr_cmd upgrade -yy"
|
||||||
|
pkmgr_install_cmd="$pkmgr_cmd install -yy $PKMGR_OPTS"
|
||||||
|
pkmgr_install_post="$pkmgr_cmd --fix-broken install"
|
||||||
|
elif [ -x "$(command -v dnf 2>/dev/null)" ]; then
|
||||||
|
pkmgr_cmd="dnf"
|
||||||
|
pkmgr_clean_cmd="$pkmgr_cmd clean all"
|
||||||
|
pkmgr_mkcache_cmd="$pkmgr_cmd makecache"
|
||||||
|
pkmgr_update_cmd="$pkmgr_cmd update -y --skip-broken $PKMGR_OPTS"
|
||||||
|
pkmgr_install_cmd="$pkmgr_cmd install -y --skip-broken $PKMGR_OPTS"
|
||||||
|
elif [ -x "$(command -v yum 2>/dev/null)" ]; then
|
||||||
|
pkmgr_cmd="yum"
|
||||||
|
pkmgr_clean_cmd="$pkmgr_cmd clean all"
|
||||||
|
pkmgr_mkcache_cmd="$pkmgr_cmd makecache"
|
||||||
|
pkmgr_update_cmd="$pkmgr_cmd update -y --skip-broken $PKMGR_OPTS"
|
||||||
|
pkmgr_install_cmd="$pkmgr_cmd install -y --skip-broken $PKMGR_OPTS"
|
||||||
|
elif [ -n "$(command -v pacman 2>/dev/null)" ]; then
|
||||||
|
pkmgr_cmd="pacman"
|
||||||
|
pkmgr_mkcache_cmd="true"
|
||||||
|
pkmgr_clean_cmd="$pkmgr_cmd -Scc --noconfirm"
|
||||||
|
pkmgr_update_cmd="$pkmgr_cmd -Syyu --noconfirm $PKMGR_OPTS"
|
||||||
|
pkmgr_install_cmd="$pkmgr_cmd -Syy --noconfirm $PKMGR_OPTS"
|
||||||
|
elif [ -x "$(command -v apk 2>/dev/null)" ]; then
|
||||||
|
pkmgr_cmd="apk"
|
||||||
|
pkmgr_mkcache_cmd="true"
|
||||||
|
pkmgr_clean_cmd="$pkmgr_cmd cache clean"
|
||||||
|
pkmgr_update_cmd="$pkmgr_cmd -U upgrade --no-cache $PKMGR_OPTS"
|
||||||
|
pkmgr_install_cmd="$pkmgr_cmd add --no-cache $PKMGR_OPTS"
|
||||||
|
elif [ -x "$(command -v zypper 2>/dev/null)" ]; then
|
||||||
|
pkmgr_cmd="zypper"
|
||||||
|
pkmgr_mkcache_cmd="true"
|
||||||
|
pkmgr_clean_cmd="$pkmgr_cmd clean --all"
|
||||||
|
pkmgr_update_cmd="$pkmgr_cmd update -y $PKMGR_OPTS"
|
||||||
|
pkmgr_install_cmd="$pkmgr_cmd install -y $PKMGR_OPTS"
|
||||||
|
else
|
||||||
|
pkmgr_cmd="true"
|
||||||
|
pkmgr_mkcache_cmd="$pkmgr_cmd"
|
||||||
|
pkmgr_clean_cmd="$pkmgr_cmd"
|
||||||
|
pkmgr_update_cmd="$pkmgr_cmd"
|
||||||
|
pkmgr_install_cmd="$pkmgr_cmd"
|
||||||
|
fi
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
if [ -f "/config/pkmgr/settings.conf" ]; then
|
||||||
|
. "/config/pkmgr/settings.conf"
|
||||||
|
elif [ -f "/etc/pkmgr/settings.conf" ]; then
|
||||||
|
. "/etc/pkmgr/settings.conf"
|
||||||
|
else
|
||||||
|
mkdir -p "/config/pkmgr"
|
||||||
|
cat <<EEOF >"/config/pkmgr/settings.conf"
|
||||||
|
pkmgr_cmd="$pkmgr_cmd"
|
||||||
|
pkmgr_clean_cmd="$pkmgr_clean_cmd"
|
||||||
|
pkmgr_update_cmd="$pkmgr_update_cmd"
|
||||||
|
pkmgr_install_cmd="$pkmgr_install_cmd"
|
||||||
|
pkmgr_mkcache_cmd="$pkmgr_mkcache_cmd"
|
||||||
|
EEOF
|
||||||
|
fi
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
[ -n "$pkmgr_cmd" ] || { echo "Can not determine the package manager" && exit 1; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
case "$1" in
|
||||||
|
pip)
|
||||||
|
shift 1
|
||||||
|
pip_bin="$(command -v python3 2>/dev/null || command -v python2 2>/dev/null || command -v python 2>/dev/null || echo "")"
|
||||||
|
py_version="$($pip_bin --version | sed 's|[pP]ython ||g' | awk -F '.' '{print $1$2}' | grep '[0-9]' || echo "0")"
|
||||||
|
[ "$py_version" -gt "310" ] && pip_opts="--break-system-packages " || pip_opts=""
|
||||||
|
case "$1" in
|
||||||
|
install)
|
||||||
|
shift 1
|
||||||
|
pkg_list="$*"
|
||||||
|
for pkg in $pkg_list; do
|
||||||
|
$pip_bin -m pip $pip_opts "$pkg"
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
for pkg in "$@"; do
|
||||||
|
$pip_bin -m pip "$pkg"
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
install)
|
||||||
|
shift 1
|
||||||
|
[ -n "$1" ] || exit 0
|
||||||
|
[ "$USER_UID" -eq 0 ] || [ "$USER" = "root" ] || pkmgr_install_cmd="sudo $pkmgr_install_cmd"
|
||||||
|
if [ -f "$1" ]; then
|
||||||
|
install_list="$(cat "$1")"
|
||||||
|
else
|
||||||
|
install_list="$*"
|
||||||
|
fi
|
||||||
|
for pkg in $install_list;do
|
||||||
|
echo "installing packages command: $pkmgr_install_cmd $pkg"
|
||||||
|
$pkmgr_install_cmd $pkg
|
||||||
|
if [ -n "$pkmgr_install_post" ]; then eval $pkmgr_install_post; fi
|
||||||
|
done
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
update | upgrade)
|
||||||
|
shift $#
|
||||||
|
[ "$USER_UID" -eq 0 ] || [ "$USER" = "root" ] || pkmgr_update_cmd="sudo $pkmgr_install_cmd"
|
||||||
|
echo "Updating packages command: $pkmgr_update_cmd"
|
||||||
|
$pkmgr_mkcache_cmd
|
||||||
|
$pkmgr_update_cmd
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
clean)
|
||||||
|
shift $#
|
||||||
|
[ -n "$1" ] || exit 0
|
||||||
|
[ "$USER_UID" -eq 0 ] || [ "$USER" = "root" ] || pkmgr_clean_cmd="sudo $pkmgr_clean_cmd"
|
||||||
|
echo "Cleaning package cache: $pkmgr_clean_cmd"
|
||||||
|
$pkmgr_clean_cmd
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
[ -n "$1" ] || exit 0
|
||||||
|
[ "$USER_UID" -eq 0 ] || [ "$USER" = "root" ] || pkmgr_cmd="sudo $pkmgr_cmd"
|
||||||
|
echo "executing packages command: $pkmgr_cmd $*"
|
||||||
|
$pkmgr_cmd "$@"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# end
|
10
rootfs/usr/local/etc/docker/env/00-directory.sh
vendored
10
rootfs/usr/local/etc/docker/env/00-directory.sh
vendored
@ -1,10 +0,0 @@
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# directory settings
|
|
||||||
BACKUP_DIR="${BACKUP_DIR:-/data/backups}"
|
|
||||||
WWW_ROOT_DIR="${WWW_ROOT_DIR:-/data/htdocs}"
|
|
||||||
LOCAL_BIN_DIR="${LOCAL_BIN_DIR:-/usr/local/bin}"
|
|
||||||
DATABASE_BASE_DIR="${DATABASE_BASE_DIR:-/data/db}"
|
|
||||||
DEFAULT_DATA_DIR="${DEFAULT_DATA_DIR:-/usr/local/share/template-files/data}"
|
|
||||||
DEFAULT_CONF_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/config}"
|
|
||||||
DEFAULT_TEMPLATE_DIR="${DEFAULT_TEMPLATE_DIR:-/usr/local/share/template-files/defaults}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
7
rootfs/usr/local/etc/docker/env/couchdb.sh
vendored
7
rootfs/usr/local/etc/docker/env/couchdb.sh
vendored
@ -1,7 +0,0 @@
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# couchdb env
|
|
||||||
NODENAME="${NODENAME:-}"
|
|
||||||
COUCHDB_USER="${DATABASE_USER_ROOT:-$COUCHDB_USER}"
|
|
||||||
COUCHDB_PASSWORD="${DATABASE_PASS_ROOT:-$COUCHDB_PASSWORD}"
|
|
||||||
DATABASE_DIR_COUCHDB="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
129
rootfs/usr/local/etc/docker/env/default.sample
vendored
129
rootfs/usr/local/etc/docker/env/default.sample
vendored
@ -1,129 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# Set bash options
|
|
||||||
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -o pipefail -x$DEBUGGER_OPTIONS || set -o pipefail
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# import the functions file
|
|
||||||
if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then
|
|
||||||
. "/usr/local/etc/docker/functions/entrypoint.sh"
|
|
||||||
fi
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# GLOBAL enviroment variables
|
|
||||||
USER="${USER:-root}"
|
|
||||||
LANG="${LANG:-C.UTF-8}"
|
|
||||||
TZ="${TZ:-America/New_York}"
|
|
||||||
SERVICE_USER="${SERVICE_USER:-root}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# directory settings
|
|
||||||
BACKUP_DIR="${BACKUP_DIR:-/data/backups}"
|
|
||||||
WWW_ROOT_DIR="${WWW_ROOT_DIR:-/data/htdocs}"
|
|
||||||
LOCAL_BIN_DIR="${LOCAL_BIN_DIR:-/usr/local/bin}"
|
|
||||||
DATABASE_BASE_DIR="${DATABASE_BASE_DIR:-/data/db}"
|
|
||||||
DEFAULT_DATA_DIR="${DEFAULT_DATA_DIR:-/usr/local/share/template-files/data}"
|
|
||||||
DEFAULT_CONF_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/config}"
|
|
||||||
DEFAULT_TEMPLATE_DIR="${DEFAULT_TEMPLATE_DIR:-/usr/local/share/template-files/defaults}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# healthcheck
|
|
||||||
HEALTH_ENABLED="${HEALTH_ENABLED:-}"
|
|
||||||
HEALTH_URL="${HEALTH_URL:-}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# php settings
|
|
||||||
PHP_VERSION="${PHP_VERSION//php/}"
|
|
||||||
PHP_INI_DIR="${PHP_INI_DIR:-$(__find_php_ini)}"
|
|
||||||
PHP_BIN_DIR="${PHP_BIN_DIR:-$(__find_php_bin)}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# services/ports
|
|
||||||
ENV_PORTS="${ENV_PORTS:-}"
|
|
||||||
SERVICE_PORT="${SERVICE_PORT:-$PORT}"
|
|
||||||
WEB_SERVER_PORTS="${WEB_SERVER_PORTS:-}"
|
|
||||||
SERVICES_LIST="${PROCS_LIST:-$SERVICES_LIST} "
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# networing info
|
|
||||||
HOSTNAME="${HOSTNAME:-casjaysdev-GEN_SCRIPT_REPLACE_APPNAME}"
|
|
||||||
DOMAINNAME="${DOMAINNAME:-}"
|
|
||||||
FULL_DOMAIN_NAME="${FULL_DOMAIN_NAME:-${DOMAINNAME:-$HOSTNAME}}"
|
|
||||||
SERVER_ADMIN="${SERVER_ADMIN:-root@${EMAIL_DOMAIN:-$DOMAINNAME}}"
|
|
||||||
EMAIL_RELAY="${EMAIL_RELAY:-}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# get ip addresses
|
|
||||||
CONTAINER_IP4_ADDRESS="${CONTAINER_IP4_ADDRESS:-$(__get_ip4)}"
|
|
||||||
CONTAINER_IP6_ADDRESS="${CONTAINER_IP6_ADDRESS:-$(__get_ip6)}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# cerbot
|
|
||||||
SSL_CERT_BOT="${SSL_CERT_BOT:-false}"
|
|
||||||
CERT_BOT_MAIL="${CERT_BOT_MAIL:-}"
|
|
||||||
CERTBOT_DOMAINS="${CERTBOT_DOMAINS:-}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# ssl server settings
|
|
||||||
SSL_ENABLED="${SSL_ENABLED:-false}"
|
|
||||||
SSL_DIR="${SSL_DIR:-/config/ssl}"
|
|
||||||
SSL_CA="${SSL_CA:-$SSL_DIR/ca.crt}"
|
|
||||||
SSL_KEY="${SSL_KEY:-$SSL_DIR/server.key}"
|
|
||||||
SSL_CERT="${SSL_CERT:-$SSL_DIR/server.crt}"
|
|
||||||
SSL_CONTAINER_DIR="${SSL_CONTAINER_DIR:-/etc/ssl/CA}"
|
|
||||||
COUNTRY="${COUNTRY:-US}"
|
|
||||||
STATE="${STATE:-NY}"
|
|
||||||
CITY="${CITY:-Albany}"
|
|
||||||
UNIT="${UNIT:-CasjaysDev}"
|
|
||||||
ORG="${ORG:-"Casjays Developments"}"
|
|
||||||
DAYS_VALID="${DAYS_VALID:-3650}"
|
|
||||||
RSA="${RSA:-4096}"
|
|
||||||
CN="${CN:-$FULL_DOMAIN_NAME}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# web server configs
|
|
||||||
HTTPD_CONFIG_FILE="${HTTPD_CONFIG_FILE:-$(__find_httpd_conf)}"
|
|
||||||
NGINX_CONFIG_FILE="${NGINX_CONFIG_FILE:-$(__find_nginx_conf)}"
|
|
||||||
LIGHTTPD_CONFIG_FILE="${LIGHTTPD_CONFIG_FILE:-$(__find_lighttpd_conf)}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# redis env
|
|
||||||
DATABASE_DIR_REDIS="${DATABASE_DIR_REDIS:-$DATABASE_BASE_DIR/redis}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# postgresql env
|
|
||||||
DATABASE_DIR_PGSQL="${DATABASE_DIR_PGSQL:-$PGDATA}"
|
|
||||||
PGDATA="${DATABASE_DIR_PGSQL:-$DATABASE_BASE_DIR/pgsql}"
|
|
||||||
POSTGRES_USER="${DATABASE_USER_ROOT:-$POSTGRES_USER}"
|
|
||||||
POSTGRES_PASSWORD="${DATABASE_PASS_ROOT:-$POSTGRES_PASSWORD}"
|
|
||||||
POSTGRES_CONFIG_FILE="${POSTGRES_CONFIG_FILE:-$(__find_pgsql_conf)}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# mariadb env
|
|
||||||
MARIADB_ROOT_HOST="${MARIADB_ROOT_HOST:-%}"
|
|
||||||
MARIADB_AUTO_UPGRADE="${MARIADB_AUTO_UPGRADE:-yes}"
|
|
||||||
MARIADB_DATABASE="${DATABASE_CREATE:-$MARIADB_DATABASE}"
|
|
||||||
MARIADB_USER="${DATABASE_USER_NORMAL:-$MARIADB_USER}"
|
|
||||||
MARIADB_PASSWORD="${DATABASE_PASS_NORMAL:-$MARIADB_PASSWORD}"
|
|
||||||
DATABASE_DIR_MARIADB="${DATABASE_DIR_MARIADB:-$DATABASE_BASE_DIR/mysql}"
|
|
||||||
MARIADB_ROOT_PASSWORD="${DATABASE_PASS_ROOT:-$MARIADB_ROOT_PASSWORD}"
|
|
||||||
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD="${MARIADB_ALLOW_EMPTY_ROOT_PASSWORD:-}"
|
|
||||||
MARIADB_INITDB_SKIP_TZINFO="${MARIADB_INITDB_SKIP_TZINFO}:-"
|
|
||||||
MARIADB_RANDOM_ROOT_PASSWORD="${MARIADB_RANDOM_ROOT_PASSWORD:-}"
|
|
||||||
MARIADB_CONFIG_FILE="${MARIADB_CONFIG_FILE:-$(__find_mysql_conf)}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# mongodb env
|
|
||||||
NITDB_ROOT_USERNAME="${DATABASE_USER_ROOT:-$NITDB_ROOT_USERNAME}"
|
|
||||||
DATABASE_DIR_MONGODB="${DATABASE_DIR_MONGODB:-$DATABASE_BASE_DIR/mongodb}"
|
|
||||||
MONGO_INITDB_ROOT_PASSWORD="${DATABASE_PASS_ROOT:-$MONGO_INITDB_ROOT_PASSWORD}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# couchdb env
|
|
||||||
NODENAME="${NODENAME:-}"
|
|
||||||
COUCHDB_USER="${DATABASE_USER_ROOT:-$COUCHDB_USER}"
|
|
||||||
COUCHDB_PASSWORD="${DATABASE_PASS_ROOT:-$COUCHDB_PASSWORD}"
|
|
||||||
DATABASE_DIR_COUCHDB="${DATABASE_DIR_COUCHDB:-$DATABASE_BASE_DIR/couchdb}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# Supabase
|
|
||||||
DATABASE_DIR_SUPABASE="${DATABASE_DIR_SUPABASE:-$DATABASE_BASE_DIR/supabase}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# File locations
|
|
||||||
ENTRYPOINT_PID_FILE="${ENTRYPOINT_PID_FILE:-/run/init.d/entrypoint.pid}"
|
|
||||||
ENTRYPOINT_INIT_FILE="${ENTRYPOINT_INIT_FILE:-/config/.entrypoint.done}"
|
|
||||||
ENTRYPOINT_DATA_INIT_FILE="${ENTRYPOINT_DATA_INIT_FILE:-/data/.docker_has_run}"
|
|
||||||
ENTRYPOINT_CONFIG_INIT_FILE="${ENTRYPOINT_CONFIG_INIT_FILE:-/config/.docker_has_run}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# Startup variables
|
|
||||||
INIT_DATE="${INIT_DATE:-$(date)}"
|
|
||||||
START_SERVICES="${START_SERVICES:-yes}"
|
|
||||||
ENTRYPOINT_MESSAGE="${ENTRYPOINT_MESSAGE:-yes}"
|
|
||||||
ENTRYPOINT_FIRST_RUN="${ENTRYPOINT_FIRST_RUN:-yes}"
|
|
||||||
DATA_DIR_INITIALIZED="${DATA_DIR_INITIALIZED:-false}"
|
|
||||||
CONFIG_DIR_INITIALIZED="${CONFIG_DIR_INITIALIZED:-false}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
|
|
1205
rootfs/usr/local/etc/docker/functions/entrypoint.sh
Normal file
1205
rootfs/usr/local/etc/docker/functions/entrypoint.sh
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,44 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
# shellcheck shell=bash
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
|
##@Version : 202505131559-git
|
||||||
SCRIPT_NAME="$(basename "$0" 2>/dev/null)"
|
# @@Author : Jason Hempstead
|
||||||
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -o pipefail -x$DEBUGGER_OPTIONS || set -o pipefail
|
# @@Contact : jason@casjaysdev.pro
|
||||||
|
# @@License : LICENSE.md
|
||||||
|
# @@ReadME : 00-aria2c.sh --help
|
||||||
|
# @@Copyright : Copyright: (c) 2025 Jason Hempstead, Casjays Developments
|
||||||
|
# @@Created : Tuesday, May 13, 2025 15:59 EDT
|
||||||
|
# @@File : 00-aria2c.sh
|
||||||
|
# @@Description :
|
||||||
|
# @@Changelog : New script
|
||||||
|
# @@TODO : Better documentation
|
||||||
|
# @@Other :
|
||||||
|
# @@Resource :
|
||||||
|
# @@Terminal App : no
|
||||||
|
# @@sudo/root : no
|
||||||
|
# @@Template : other/start-service
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# shellcheck disable=SC1003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# run trap command on exit
|
||||||
|
trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM EXIT
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# setup debugging - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
|
||||||
|
[ -f "/config/.debug" ] && [ -z "$DEBUGGER_OPTIONS" ] && export DEBUGGER_OPTIONS="$(<"/config/.debug")" || DEBUGGER_OPTIONS="${DEBUGGER_OPTIONS:-}"
|
||||||
|
{ [ "$DEBUGGER" = "on" ] || [ -f "/config/.debug" ]; } && echo "Enabling debugging" && set -xo pipefail -x$DEBUGGER_OPTIONS && export DEBUGGER="on" || set -o pipefail
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
export PATH="/usr/local/etc/docker/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin"
|
export PATH="/usr/local/etc/docker/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# run trap command on exit
|
SCRIPT_FILE="$0"
|
||||||
trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "true" ] && [ -f "/run/init.d/$EXEC_CMD_BIN.pid" ] && rm -Rf "/run/init.d/$EXEC_CMD_BIN.pid";exit $retVal' SIGINT SIGTERM EXIT
|
SERVICE_NAME="aria2c"
|
||||||
|
SCRIPT_NAME="$(basename -- "$SCRIPT_FILE" 2>/dev/null)"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# exit if __start_init_scripts function hasn't been Initialized
|
||||||
|
if [ ! -f "/run/__start_init_scripts.pid" ]; then
|
||||||
|
echo "__start_init_scripts function hasn't been Initialized" >&2
|
||||||
|
SERVICE_IS_RUNNING="no"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# import the functions file
|
# import the functions file
|
||||||
if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then
|
if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then
|
||||||
@ -19,162 +50,666 @@ for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.s
|
|||||||
[ -f "$set_env" ] && . "$set_env"
|
[ -f "$set_env" ] && . "$set_env"
|
||||||
done
|
done
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Custom functions
|
# Custom functions
|
||||||
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# execute command variables
|
# Script to execute
|
||||||
WORKDIR="" # set working directory
|
START_SCRIPT="/usr/local/etc/docker/exec/$SERVICE_NAME"
|
||||||
SERVICE_UID="0" # set the user id
|
|
||||||
SERVICE_USER="root" # execute command as another user
|
|
||||||
SERVICE_PORT="8000" # port which service is listening on
|
|
||||||
EXEC_CMD_BIN="aria2c" # command to execute
|
|
||||||
EXEC_CMD_ARGS="--conf-path=/etc/aria2/aria2.conf" # command arguments
|
|
||||||
PRE_EXEC_MESSAGE="" # Show message before execute
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Other variables that are needed
|
# Reset environment before executing service
|
||||||
etc_dir="/etc/aria2"
|
RESET_ENV="no"
|
||||||
conf_dir="/config/aria2"
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
www_dir="/usr/local/share/ariang"
|
# Set webroot
|
||||||
data_dir="$(grep -Rs 'dir=' "/config/aria2/aria2.conf" | awk -F'=' '{print $2}')"
|
WWW_ROOT_DIR="/usr/local/share/ariang"
|
||||||
get_config="$(find "$www_dir/js" -name 'aria-ng-*.min.js' | grep -v 'f1dd57abb9.min' | head -n1)"
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Default predefined variables
|
||||||
|
DATA_DIR="/data/aria2" # set data directory
|
||||||
|
CONF_DIR="/config/aria2" # set config directory
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# set the containers etc directory
|
||||||
|
ETC_DIR="/etc/aria2"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# set the var dir
|
||||||
|
VAR_DIR=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
TMP_DIR="/tmp/aria2" # set the temp dir
|
||||||
|
RUN_DIR="/run/aria2" # set scripts pid dir
|
||||||
|
LOG_DIR="/data/logs/aria2" # set log directory
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set the working dir
|
||||||
|
WORK_DIR=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# port which service is listening on
|
||||||
|
SERVICE_PORT="6800"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# User to use to launch service - IE: postgres
|
||||||
|
RUNAS_USER="root" # normally root
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# User and group in which the service switches to - IE: nginx,apache,mysql,postgres
|
||||||
|
#SERVICE_USER="aria2c" # execute command as another user
|
||||||
|
#SERVICE_GROUP="aria2c" # Set the service group
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set password length
|
||||||
|
RANDOM_PASS_USER=""
|
||||||
|
RANDOM_PASS_ROOT=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set user and group ID
|
||||||
|
#SERVICE_UID="0" # set the user id
|
||||||
|
#SERVICE_GID="0" # set the group id
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# execute command variables - keep single quotes variables will be expanded later
|
||||||
|
EXEC_CMD_BIN='aria2c' # command to execute
|
||||||
|
EXEC_CMD_ARGS='--conf-path=$CONF_DIR/aria2.conf' # command arguments
|
||||||
|
EXEC_PRE_SCRIPT='' # execute script before
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Is this service a web server
|
||||||
|
IS_WEB_SERVER="no"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Is this service a database server
|
||||||
|
IS_DATABASE_SERVICE="no"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Does this service use a database server
|
||||||
|
USES_DATABASE_SERVICE="no"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set defualt type - [custom,sqlite,redis,postgres,mariadb,mysql,couchdb,mongodb,supabase]
|
||||||
|
DATABASE_SERVICE_TYPE="sqlite"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Show message before execute
|
||||||
|
PRE_EXEC_MESSAGE=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set the wait time to execute __post_execute function - minutes
|
||||||
|
POST_EXECUTE_WAIT_TIME="1"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Update path var
|
||||||
|
PATH="$PATH:."
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Lets get containers ip address
|
||||||
|
IP4_ADDRESS="$(__get_ip4)"
|
||||||
|
IP6_ADDRESS="$(__get_ip6)"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Where to save passwords to
|
||||||
|
ROOT_FILE_PREFIX="/config/secure/auth/root" # directory to save username/password for root user
|
||||||
|
USER_FILE_PREFIX="/config/secure/auth/user" # directory to save username/password for normal user
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# root/admin user info password/random]
|
||||||
|
root_user_name="${ARIA2C_ROOT_USER_NAME:-}" # root user name
|
||||||
|
root_user_pass="${ARIA2C_ROOT_PASS_WORD:-}" # root user password
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Normal user info [password/random]
|
||||||
|
user_name="${ARIA2C_USER_NAME:-}" # normal user name
|
||||||
|
user_pass="${ARIA2C_USER_PASS_WORD:-}" # normal user password
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Load variables from config
|
||||||
|
[ -f "/config/env/aria2c.script.sh" ] && . "/config/env/aria2c.script.sh" # Generated by my dockermgr script
|
||||||
|
[ -f "/config/env/aria2c.sh" ] && . "/config/env/aria2c.sh" # Overwrite the variabes
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Additional predefined variables
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Additional variables
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Specifiy custom directories to be created
|
||||||
|
ADD_APPLICATION_FILES=""
|
||||||
|
ADD_APPLICATION_DIRS=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
APPLICATION_FILES="$LOG_DIR/$SERVICE_NAME.log"
|
||||||
|
APPLICATION_DIRS="$ETC_DIR $CONF_DIR $LOG_DIR $TMP_DIR $RUN_DIR $VAR_DIR"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Additional config dirs - will be Copied to /etc/$name
|
||||||
|
ADDITIONAL_CONFIG_DIRS=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# define variables that need to be loaded into the service - escape quotes - var=\"value\",other=\"test\"
|
||||||
|
CMD_ENV=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Overwrite based on file/directory
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Per Application Variables or imports
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Custom commands to run before copying to /config
|
||||||
|
__run_precopy() {
|
||||||
|
# Define environment
|
||||||
|
local hostname=${HOSTNAME}
|
||||||
|
[ -d "/run/healthcheck" ] || mkdir -p "/run/healthcheck"
|
||||||
|
# Define actions/commands
|
||||||
|
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Custom prerun functions - IE setup WWW_ROOT_DIR
|
||||||
|
__execute_prerun() {
|
||||||
|
# Define environment
|
||||||
|
local hostname=${HOSTNAME}
|
||||||
|
# Define actions/commands
|
||||||
|
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Run any pre-execution checks
|
||||||
|
__run_pre_execute_checks() {
|
||||||
|
# Set variables
|
||||||
|
local exitStatus=0
|
||||||
|
local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME" # message to show at start
|
||||||
|
local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion
|
||||||
|
__banner "$pre_execute_checks_MessageST"
|
||||||
|
# Put command to execute in parentheses
|
||||||
|
{
|
||||||
|
true
|
||||||
|
}
|
||||||
|
exitStatus=$?
|
||||||
|
__banner "$pre_execute_checks_MessageEnd: Status $exitStatus"
|
||||||
|
|
||||||
|
# show exit message
|
||||||
|
if [ $exitStatus -ne 0 ]; then
|
||||||
|
echo "The pre-execution check has failed" >&2
|
||||||
|
[ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi
|
||||||
|
# exit function
|
||||||
|
return $exitStatus
|
||||||
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# use this function to update config files - IE: change port
|
# use this function to update config files - IE: change port
|
||||||
__update_conf_files() {
|
__update_conf_files() {
|
||||||
local port="${SERVICE_PORT:-8000}"
|
local exitCode=0 # default exit code
|
||||||
[ -d "$etc_dir" ] || mkdir -p "$etc_dir"
|
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname
|
||||||
[ -d "$data_dir" ] || mkdir -p "$data_dir"
|
local get_data_dir="$(grep -Rs 'dir=' "/config/aria2/aria2.conf" | awk -F'=' '{print $2}')"
|
||||||
[ -d "/data/logs/aria2" ] || mkdir -p "/data/logs/aria2"
|
local get_config="$(find "$WWW_ROOT_DIR/js" -name 'aria-ng-*.min.js' | grep -v 'f1dd57abb9.min' | head -n1)"
|
||||||
cp -Rf "$conf_dir/aria2.conf" "$etc_dir/aria2.conf"
|
|
||||||
ln -sf "$conf_dir/aria2.session" "$etc_dir/aria2.session"
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
if [ -f "$conf_dir/aria-ng.config.js" ]; then
|
# delete files
|
||||||
rm -Rf "$get_config"
|
#__rm ""
|
||||||
cp -Rf "$conf_dir/aria-ng.config.js" "$get_config"
|
|
||||||
cp -Rf "$conf_dir/aria-ng.config.js" "$www_dir/js/aria-ng-f1dd57abb9.min.js"
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
fi
|
# custom commands
|
||||||
__replace "REPLACE_RPC_PORT" "$SERVICE_PORT" "$etc_dir/aria2.conf"
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# replace variables
|
||||||
|
__replace "REPLACE_RPC_PORT" "$SERVICE_PORT" "$CONF_DIR/aria2.conf"
|
||||||
|
__replace "REPLACE_SERVER_PORT" "$SERVICE_PORT" "$CONF_DIR/aria-ng.config.js"
|
||||||
|
__replace "REPLACE_SERVER_ADDR" "$CONTAINER_IP4_ADDRESS" "$CONF_DIR/aria-ng.config.js"
|
||||||
if [ -n "$RPC_SECRET" ]; then
|
if [ -n "$RPC_SECRET" ]; then
|
||||||
echo "Changing rpc secret to $RPC_SECRET"
|
echo "Changing rpc secret to $RPC_SECRET"
|
||||||
if grep -sq "rpc-secret=" "$etc_dir/aria2.conf"; then
|
if grep -sq "rpc-secret=" "$CONF_DIR/aria2.conf"; then
|
||||||
__replace "REPLACE_RPC_SECRET" "$RPC_SECRET" "$www_dir/js/aria-ng.config.js"
|
__replace "#rpc-secret=" "rpc-secret=" "$CONF_DIR/aria2.conf"
|
||||||
__replace "REPLACE_RPC_SECRET" "$RPC_SECRET" "$etc_dir/aria2.conf"
|
__replace "REPLACE_RPC_SECRET" "$RPC_SECRET" "$CONF_DIR/aria2.conf"
|
||||||
|
__replace "REPLACE_RPC_SECRET" "$RPC_SECRET" "$CONF_DIR/aria-ng.config.js"
|
||||||
else
|
else
|
||||||
echo "rpc-secret=$RPC_SECRET" >>"$etc_dir/aria2.conf"
|
echo "rpc-secret=$RPC_SECRET" >>"$CONF_DIR/aria2.conf"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
__replace "rpc-secret=" "#rpc-secret=" "$etc_dir/aria2.conf"
|
__replace "rpc-secret=" "#rpc-secret=" "$CONF_DIR/aria2.conf"
|
||||||
|
__replace "REPLACE_RPC_SECRET" "" "$CONF_DIR/aria-ng.config.js"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# use this function to setup ssl support
|
# define actions
|
||||||
__update_ssl_conf() {
|
if [ -n "$get_data_dir" ]; then
|
||||||
|
[ -d "$get_data_dir" ] || mkdir -p "$get_data_dir"
|
||||||
return 0
|
fi
|
||||||
|
if [ -f "$CONF_DIR/aria-ng.config.js" ]; then
|
||||||
|
if [ -n "$get_config" ]; then
|
||||||
|
rm -Rf "$get_config"
|
||||||
|
cp -Rf "$CONF_DIR/aria-ng.config.js" "$get_config"
|
||||||
|
fi
|
||||||
|
cp -Rf "$CONF_DIR/aria-ng.config.js" "$WWW_ROOT_DIR/js/aria-ng-f1dd57abb9.min.js"
|
||||||
|
fi
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi
|
||||||
|
# exit function
|
||||||
|
return $exitCode
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# function to run before executing
|
# function to run before executing
|
||||||
__pre_execute() {
|
__pre_execute() {
|
||||||
|
local exitCode=0 # default exit code
|
||||||
|
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname
|
||||||
|
# execute if directories is empty
|
||||||
|
# __is_dir_empty "$CONF_DIR" && true
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# define actions to run after copying to /config
|
||||||
|
|
||||||
return 0
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# unset unneeded variables
|
||||||
|
unset sysname
|
||||||
|
# Lets wait a few seconds before continuing
|
||||||
|
sleep 5
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi
|
||||||
|
# exit function
|
||||||
|
return $exitCode
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# function to run after executing
|
||||||
|
__post_execute() {
|
||||||
|
local pid="" # init pid var
|
||||||
|
local retVal=0 # set default exit code
|
||||||
|
local ctime=${POST_EXECUTE_WAIT_TIME:-1} # how long to wait before executing
|
||||||
|
local waitTime=$((ctime * 60)) # convert minutes to seconds
|
||||||
|
local postMessageST="Running post commands for $SERVICE_NAME" # message to show at start
|
||||||
|
local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion
|
||||||
|
# wait
|
||||||
|
sleep $waitTime
|
||||||
|
# execute commands after waiting
|
||||||
|
(
|
||||||
|
# show message
|
||||||
|
__banner "$postMessageST"
|
||||||
|
# commands to execute
|
||||||
|
sleep 5
|
||||||
|
# show exit message
|
||||||
|
__banner "$postMessageEnd: Status $retVal"
|
||||||
|
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
||||||
|
pid=$!
|
||||||
|
ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi
|
||||||
|
# exit function
|
||||||
|
return $retVal
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# use this function to update config files - IE: change port
|
||||||
|
__pre_message() {
|
||||||
|
local exitCode=0
|
||||||
|
[ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE"
|
||||||
|
# execute commands
|
||||||
|
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi
|
||||||
|
# exit function
|
||||||
|
return $exitCode
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# use this function to setup ssl support
|
||||||
|
__update_ssl_conf() {
|
||||||
|
local exitCode=0
|
||||||
|
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname
|
||||||
|
# execute commands
|
||||||
|
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi
|
||||||
|
# set exitCode
|
||||||
|
return $exitCode
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__create_service_env() {
|
||||||
|
local exitCode=0
|
||||||
|
if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then
|
||||||
|
cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# root/admin user info [password/random]
|
||||||
|
#ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$ARIA2C_ROOT_USER_NAME}" # root user name
|
||||||
|
#ENV_ROOT_USER_PASS="${ENV_ROOT_USER_NAME:-$ARIA2C_ROOT_PASS_WORD}" # root user password
|
||||||
|
#root_user_name="${ENV_ROOT_USER_NAME:-$root_user_name}" #
|
||||||
|
#root_user_pass="${ENV_ROOT_USER_PASS:-$root_user_pass}" #
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
#Normal user info [password/random]
|
||||||
|
#ENV_USER_NAME="${ENV_USER_NAME:-$ARIA2C_USER_NAME}" #
|
||||||
|
#ENV_USER_PASS="${ENV_USER_PASS:-$ARIA2C_USER_PASS_WORD}" #
|
||||||
|
#user_name="${ENV_USER_NAME:-$user_name}" # normal user name
|
||||||
|
#user_pass="${ENV_USER_PASS:-$user_pass}" # normal user password
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__run_precopy_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__execute_prerun_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__run_pre_execute_checks_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__update_conf_files_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__pre_execute_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__post_execute_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__pre_message_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__update_ssl_conf_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
fi
|
||||||
|
__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1))
|
||||||
|
__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1))
|
||||||
|
return $exitCode
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# script to start server
|
# script to start server
|
||||||
__run_start_script() {
|
__run_start_script() {
|
||||||
local workdir="${WORKDIR:-$HOME}"
|
local runExitCode=0
|
||||||
local cmd="$EXEC_CMD_BIN $EXEC_CMD_ARGS"
|
local workdir="$(eval echo "${WORK_DIR:-}")" # expand variables
|
||||||
local user="${SERVICE_USER:-root}"
|
local cmd="$(eval echo "${EXEC_CMD_BIN:-}")" # expand variables
|
||||||
local lc_type="${LC_ALL:-${LC_CTYPE:-$LANG}}"
|
local args="$(eval echo "${EXEC_CMD_ARGS:-}")" # expand variables
|
||||||
local home="${workdir//\/root/\/home\/docker}"
|
local name="$(eval echo "${EXEC_CMD_NAME:-}")" # expand variables
|
||||||
local path="/usr/local/bin:/usr/bin:/bin:/usr/sbin"
|
local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")" # expand variables
|
||||||
case "$1" in
|
local extra_env="$(eval echo "${CMD_ENV//,/ }")" # expand variables
|
||||||
check) shift 1 && __pgrep $EXEC_CMD_BIN || return 5 ;;
|
local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")" # expand variables
|
||||||
*) su_cmd "$cmd" || return 10 ;;
|
local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")" # expand variables
|
||||||
esac
|
local path="$(eval echo "$PATH")" # expand variables
|
||||||
}
|
local message="$(eval echo "")" # expand variables
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname
|
||||||
# process check functions
|
[ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh"
|
||||||
__pcheck() { [ -n "$(type -P pgrep 2>/dev/null)" ] && pgrep -x "$1" &>/dev/null && return 0 || return 10; }
|
#
|
||||||
__pgrep() { __pcheck "${1:-EXEC_CMD_BIN}" || __ps aux 2>/dev/null | grep -Fw " ${1:-$EXEC_CMD_BIN}" | grep -qv ' grep' | grep '^' && return 0 || return 10; }
|
if [ -z "$cmd" ]; then
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
__post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt"
|
||||||
# Allow ENV_ variable
|
retVal=$?
|
||||||
[ -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ] && "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" # Import env file
|
echo "Initializing $SCRIPT_NAME has completed"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
exit $retVal
|
||||||
WORKDIR="${ENV_WORKDIR:-$WORKDIR}" # change to directory
|
else
|
||||||
SERVICE_USER="${ENV_SERVICE_USER:-$SERVICE_USER}" # execute command as another user
|
|
||||||
SERVICE_UID="${ENV_SERVICE_UID:-$SERVICE_UID}" # set the user id
|
|
||||||
SERVICE_PORT="${ENV_SERVICE_PORT:-$SERVICE_PORT}" # port which service is listening on
|
|
||||||
EXEC_CMD_BIN="${ENV_EXEC_CMD_BIN:-$EXEC_CMD_BIN}" # command to execute
|
|
||||||
EXEC_CMD_ARGS="${ENV_EXEC_CMD_ARGS:-$EXEC_CMD_ARGS}" # command arguments
|
|
||||||
PRE_EXEC_MESSAGE="${ENV_PRE_EXEC_MESSAGE:-$PRE_EXEC_MESSAGE}" # Show message before execute
|
|
||||||
SERVICE_EXIT_CODE=0 # default exit code
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
printf '%s\n' "# - - - Attempting to start $EXEC_CMD_BIN - - - #"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# ensure the command exists
|
# ensure the command exists
|
||||||
if [ ! -f "$(type -P "$EXEC_CMD_BIN")" ] && [ -z "$EXEC_CMD_BIN" ]; then
|
if [ ! -x "$cmd" ]; then
|
||||||
echo "$EXEC_CMD_BIN is not a valid command"
|
echo "$name is not a valid executable"
|
||||||
exit 2
|
return 2
|
||||||
fi
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# check if process is already running
|
|
||||||
if __pgrep "$EXEC_CMD_BIN"; then
|
|
||||||
SERVICE_IS_RUNNING="true"
|
|
||||||
echo "$EXEC_CMD_BIN is running"
|
|
||||||
exit 0
|
|
||||||
fi
|
fi
|
||||||
|
# check and exit if already running
|
||||||
|
if __proc_check "$name" || __proc_check "$cmd"; then
|
||||||
|
echo "$name is already running" >&2
|
||||||
|
return 0
|
||||||
|
else
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# show message if env exists
|
# show message if env exists
|
||||||
if [ -n "$EXEC_CMD_BIN" ]; then
|
if [ -n "$cmd" ]; then
|
||||||
[ -n "$SERVICE_USER" ] && echo "Setting up service to run as $SERVICE_USER"
|
[ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root"
|
||||||
[ -n "$SERVICE_PORT" ] && echo "$EXEC_CMD_BIN will be running on $SERVICE_PORT"
|
[ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT=""
|
||||||
|
fi
|
||||||
|
if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then
|
||||||
|
export cmd_exec="$pre $cmd $args"
|
||||||
|
message="Starting service: $name $args through $pre"
|
||||||
|
else
|
||||||
|
export cmd_exec="$cmd $args"
|
||||||
|
message="Starting service: $name $args"
|
||||||
|
fi
|
||||||
|
[ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt"
|
||||||
|
echo "$message" | tee -a -p "/data/logs/init.txt"
|
||||||
|
su_cmd touch "$SERVICE_PID_FILE"
|
||||||
|
if [ "$RESET_ENV" = "yes" ]; then
|
||||||
|
env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")"
|
||||||
|
execute_command="$(__trim "$su_exec $env_command $cmd_exec")"
|
||||||
|
if [ ! -f "$START_SCRIPT" ]; then
|
||||||
|
cat <<EOF >"$START_SCRIPT"
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT
|
||||||
|
#
|
||||||
|
set -Eeo pipefail
|
||||||
|
# Setting up $cmd to run as ${SERVICE_USER:-root} with env
|
||||||
|
retVal=10
|
||||||
|
cmd="$cmd"
|
||||||
|
SERVICE_NAME="$SERVICE_NAME"
|
||||||
|
SERVICE_PID_FILE="$SERVICE_PID_FILE"
|
||||||
|
$execute_command 2>"/dev/stderr" >>"$LOG_DIR/$SERVICE_NAME.log" &
|
||||||
|
execPid=\$!
|
||||||
|
sleep 2
|
||||||
|
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)"
|
||||||
|
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10
|
||||||
|
[ "\$retVal" = 0 ] && echo "\$cmd has been started" && printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME" || echo "Failed to start $execute_command" >&2
|
||||||
|
exit \$retVal
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ ! -f "$START_SCRIPT" ]; then
|
||||||
|
execute_command="$(__trim "$su_exec $cmd_exec")"
|
||||||
|
cat <<EOF >"$START_SCRIPT"
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT
|
||||||
|
#
|
||||||
|
set -Eeo pipefail
|
||||||
|
# Setting up $cmd to run as ${SERVICE_USER:-root}
|
||||||
|
retVal=10
|
||||||
|
cmd="$cmd"
|
||||||
|
SERVICE_NAME="$SERVICE_NAME"
|
||||||
|
SERVICE_PID_FILE="$SERVICE_PID_FILE"
|
||||||
|
$execute_command 2>>"/dev/stderr" >>"$LOG_DIR/$SERVICE_NAME.log" &
|
||||||
|
execPid=\$!
|
||||||
|
sleep 2
|
||||||
|
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)"
|
||||||
|
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10
|
||||||
|
[ "\$retVal" = 0 ] && echo "\$cmd has been started" || echo "Failed to start $execute_command" >&2 >&2
|
||||||
|
exit \$retVal
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
[ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT"
|
||||||
|
[ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT"
|
||||||
|
runExitCode=$?
|
||||||
|
fi
|
||||||
|
return $runExitCode
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# username and password actions
|
||||||
|
__run_secure_function() {
|
||||||
|
local filesperms
|
||||||
|
if [ -n "$user_name" ] || [ -n "$user_pass" ]; then
|
||||||
|
for filesperms in "${USER_FILE_PREFIX}"/*; do
|
||||||
|
if [ -e "$filesperms" ]; then
|
||||||
|
chmod -Rf 600 "$filesperms"
|
||||||
|
chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null
|
||||||
|
fi
|
||||||
|
done 2>/dev/null | tee -p -a "/data/logs/init.txt"
|
||||||
|
fi
|
||||||
|
if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then
|
||||||
|
for filesperms in "${ROOT_FILE_PREFIX}"/*; do
|
||||||
|
if [ -e "$filesperms" ]; then
|
||||||
|
chmod -Rf 600 "$filesperms"
|
||||||
|
chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null
|
||||||
|
fi
|
||||||
|
done 2>/dev/null | tee -p -a "/data/logs/init.txt"
|
||||||
|
fi
|
||||||
|
unset filesperms
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Allow ENV_ variable - Import env file
|
||||||
|
__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" && . "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh"
|
||||||
|
__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" && . "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
SERVICE_EXIT_CODE=0 # default exit code
|
||||||
|
# application specific
|
||||||
|
EXEC_CMD_NAME="$(basename -- "$EXEC_CMD_BIN")" # set the binary name
|
||||||
|
SERVICE_PID_FILE="/run/init.d/$EXEC_CMD_NAME.pid" # set the pid file location
|
||||||
|
SERVICE_PID_NUMBER="$(__pgrep)" # check if running
|
||||||
|
EXEC_CMD_BIN="$(type -P "$EXEC_CMD_BIN" || echo "$EXEC_CMD_BIN")" # set full path
|
||||||
|
EXEC_PRE_SCRIPT="$(type -P "$EXEC_PRE_SCRIPT" || echo "$EXEC_PRE_SCRIPT")" # set full path
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Only run check
|
||||||
|
__check_service "$1" && SERVICE_IS_RUNNING=yes
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# ensure needed directories exists
|
||||||
|
[ -d "$LOG_DIR" ] || mkdir -p "$LOG_DIR"
|
||||||
|
[ -d "$RUN_DIR" ] || mkdir -p "$RUN_DIR"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# create auth directories
|
||||||
|
[ -n "$USER_FILE_PREFIX" ] && { [ -d "$USER_FILE_PREFIX" ] || mkdir -p "$USER_FILE_PREFIX"; }
|
||||||
|
[ -n "$ROOT_FILE_PREFIX" ] && { [ -d "$ROOT_FILE_PREFIX" ] || mkdir -p "$ROOT_FILE_PREFIX"; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
[ -n "$RUNAS_USER" ] || RUNAS_USER="root"
|
||||||
|
[ -n "$SERVICE_USER" ] || SERVICE_USER="$RUNAS_USER"
|
||||||
|
[ -n "$SERVICE_GROUP" ] || SERVICE_GROUP="${SERVICE_USER:-$RUNAS_USER}"
|
||||||
|
[ "$IS_WEB_SERVER" = "yes" ] && RESET_ENV="yes" && __is_htdocs_mounted
|
||||||
|
[ "$IS_WEB_SERVER" = "yes" ] && [ -z "$SERVICE_PORT" ] && SERVICE_PORT="80"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Database env
|
||||||
|
if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then
|
||||||
|
RESET_ENV="no"
|
||||||
|
DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}"
|
||||||
|
DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}"
|
||||||
|
DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}"
|
||||||
|
DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}"
|
||||||
|
DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}"
|
||||||
|
if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then
|
||||||
|
echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user"
|
||||||
|
fi
|
||||||
|
if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then
|
||||||
|
echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Change to working directory
|
# [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]]
|
||||||
[ -n "$WORKDIR" ] && mkdir -p "$WORKDIR" && __cd "$WORKDIR" && echo "Changed to $PWD"
|
if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}"
|
||||||
|
elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}"
|
||||||
|
elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}"
|
||||||
|
elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}"
|
||||||
|
elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}"
|
||||||
|
elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}"
|
||||||
|
elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}"
|
||||||
|
elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}"
|
||||||
|
elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}"
|
||||||
|
[ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR"
|
||||||
|
chmod 777 "$DATABASE_DIR"
|
||||||
|
fi
|
||||||
|
[ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Allow variables via imports - Overwrite existing
|
||||||
|
[ -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ] && . "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# set password to random if variable is random
|
||||||
|
[ "$user_pass" = "random" ] && user_pass="$(__random_password ${RANDOM_PASS_USER:-16})"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
[ "$root_user_pass" = "random" ] && root_user_pass="$(__random_password ${RANDOM_PASS_ROOT:-16})"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Allow setting initial users and passwords via environment and save to file
|
||||||
|
[ -n "$user_name" ] && echo "$user_name" >"${USER_FILE_PREFIX}/${SERVICE_NAME}_name"
|
||||||
|
[ -n "$user_pass" ] && echo "$user_pass" >"${USER_FILE_PREFIX}/${SERVICE_NAME}_pass"
|
||||||
|
[ -n "$root_user_name" ] && echo "$root_user_name" >"${ROOT_FILE_PREFIX}/${SERVICE_NAME}_name"
|
||||||
|
[ -n "$root_user_pass" ] && echo "$root_user_pass" >"${ROOT_FILE_PREFIX}/${SERVICE_NAME}_pass"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# create needed dirs
|
||||||
|
[ -d "$LOG_DIR" ] || mkdir -p "$LOG_DIR"
|
||||||
|
[ -d "$RUN_DIR" ] || mkdir -p "$RUN_DIR"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Allow per init script usernames and passwords
|
||||||
|
__file_exists_with_content "${USER_FILE_PREFIX}/${SERVICE_NAME}_name" && user_name="$(<"${USER_FILE_PREFIX}/${SERVICE_NAME}_name")"
|
||||||
|
__file_exists_with_content "${USER_FILE_PREFIX}/${SERVICE_NAME}_pass" && user_pass="$(<"${USER_FILE_PREFIX}/${SERVICE_NAME}_pass")"
|
||||||
|
__file_exists_with_content "${ROOT_FILE_PREFIX}/${SERVICE_NAME}_name" && root_user_name="$(<"${ROOT_FILE_PREFIX}/${SERVICE_NAME}_name")"
|
||||||
|
__file_exists_with_content "${ROOT_FILE_PREFIX}/${SERVICE_NAME}_pass" && root_user_pass="$(<"${ROOT_FILE_PREFIX}/${SERVICE_NAME}_pass")"
|
||||||
|
__file_exists_with_content "${USER_FILE_PREFIX}/db_pass_user" && DATABASE_PASS_NORMAL="$(<"${USER_FILE_PREFIX}/db_pass_user")"
|
||||||
|
__file_exists_with_content "${ROOT_FILE_PREFIX}/db_pass_root" && DATABASE_PASS_ROOT="$(<"${ROOT_FILE_PREFIX}/db_pass_root")"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# set hostname for script
|
||||||
|
sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__create_service_env
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Setup /config directories
|
||||||
|
__init_config_etc
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# pre-run function
|
||||||
|
__execute_prerun
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# create user if needed
|
||||||
|
__create_service_user "$SERVICE_USER" "$SERVICE_GROUP" "${WORK_DIR:-/home/$SERVICE_USER}" "${SERVICE_UID:-}" "${SERVICE_GID:-}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Modify user if needed
|
||||||
|
__set_user_group_id $SERVICE_USER ${SERVICE_UID:-} ${SERVICE_GID:-}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Create base directories
|
||||||
|
__setup_directories
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# set switch user command
|
||||||
|
__switch_to_user
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Initialize the home/working dir
|
||||||
|
__init_working_dir
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# show init message
|
||||||
|
__pre_message
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
#
|
||||||
|
__initialize_db_users
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Initialize ssl
|
# Initialize ssl
|
||||||
__update_ssl_conf
|
__update_ssl_conf
|
||||||
__update_ssl_certs
|
__update_ssl_certs
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set permissions in ${USER_FILE_PREFIX} and ${ROOT_FILE_PREFIX}
|
||||||
|
__run_secure_function
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__run_precopy
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Copy /config to /etc
|
||||||
|
for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do
|
||||||
|
__initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt"
|
||||||
|
done
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Replace variables
|
||||||
|
__initialize_replace_variables "$ETC_DIR" "$CONF_DIR" "$ADDITIONAL_CONFIG_DIRS" "$WWW_ROOT_DIR"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
#
|
||||||
|
__initialize_database
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Updating config files
|
# Updating config files
|
||||||
__update_conf_files
|
__update_conf_files
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# run the pre execute commands
|
# run the pre execute commands
|
||||||
[ -n "$PRE_EXEC_MESSAGE" ] && echo "$PRE_EXEC_MESSAGE"
|
|
||||||
__pre_execute
|
__pre_execute
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
WORKDIR="${WORKDIR:-}"
|
# Set permissions
|
||||||
if [ "$SERVICE_USER" = "root" ] || [ -z "$SERVICE_USER" ]; then
|
__fix_permissions "$SERVICE_USER" "$SERVICE_GROUP"
|
||||||
su_cmd() { eval "$@" || return 1; }
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
elif [ "$(builtin type -P gosu)" ]; then
|
#
|
||||||
su_cmd() { gosu $SERVICE_USER "$@" || return 1; }
|
__run_pre_execute_checks 2>/dev/stderr | tee -a -p "/data/logs/entrypoint.log" "/data/logs/init.txt" || return 20
|
||||||
elif [ "$(builtin type -P runuser)" ]; then
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
su_cmd() { runuser -u $SERVICE_USER "$@" || return 1; }
|
__run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log"
|
||||||
elif [ "$(builtin type -P sudo)" ]; then
|
errorCode=$?
|
||||||
su_cmd() { sudo -u $SERVICE_USER "$@" || return 1; }
|
if [ -n "$EXEC_CMD_BIN" ]; then
|
||||||
elif [ "$(builtin type -P su)" ]; then
|
if [ "$errorCode" -eq 0 ]; then
|
||||||
su_cmd() { su -s /bin/sh - $SERVICE_USER -c "$@" || return 1; }
|
SERVICE_EXIT_CODE=0
|
||||||
|
SERVICE_IS_RUNNING="yes"
|
||||||
else
|
else
|
||||||
echo "Can not switch to $SERVICE_USER: attempting to run as root"
|
SERVICE_EXIT_CODE=$errorCode
|
||||||
su_cmd() { eval "$@" || return 1; }
|
SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}"
|
||||||
fi
|
[ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE"
|
||||||
if [ -n "$WORKDIR" ] && [ "${SERVICE_USER:-$USER}" != "root" ]; then
|
|
||||||
echo "Fixing file permissions"
|
|
||||||
su_cmd chown -Rf $SERVICE_USER $WORKDIR $etc_dir $var_dir $log_dir
|
|
||||||
fi
|
|
||||||
if __pgrep $EXEC_CMD_BIN && [ -f "/run/init.d/$EXEC_CMD_BIN.pid" ]; then
|
|
||||||
SERVICE_EXIT_CODE=1
|
|
||||||
echo "$EXEC_CMD_BIN" is already running
|
|
||||||
else
|
|
||||||
echo "Starting service: $EXEC_CMD_BIN $EXEC_CMD_ARGS"
|
|
||||||
su_cmd touch /run/init.d/$EXEC_CMD_BIN.pid
|
|
||||||
__run_start_script "$@" |& tee -a "/tmp/entrypoint.log"
|
|
||||||
if [ "$?" -ne 0 ]; then
|
|
||||||
echo "Failed to execute: $EXEC_CMD_BIN $EXEC_CMD_ARGS"
|
|
||||||
SERVICE_EXIT_CODE=10 SERVICE_IS_RUNNING="false"
|
|
||||||
su_cmd rm -Rf "/run/init.d/$EXEC_CMD_BIN.pid"
|
|
||||||
fi
|
fi
|
||||||
|
SERVICE_EXIT_CODE=0
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# start the post execute function in background
|
||||||
|
__post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__banner "Initializing of $SERVICE_NAME has completed with statusCode: $SERVICE_EXIT_CODE" | tee -p -a "/data/logs/entrypoint.log" "/data/logs/init.txt"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
exit $SERVICE_EXIT_CODE
|
exit $SERVICE_EXIT_CODE
|
||||||
|
@ -1,12 +1,44 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
# shellcheck shell=bash
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
|
##@Version : 202505131559-git
|
||||||
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -o pipefail -x$DEBUGGER_OPTIONS || set -o pipefail
|
# @@Author : Jason Hempstead
|
||||||
|
# @@Contact : jason@casjaysdev.pro
|
||||||
|
# @@License : LICENSE.md
|
||||||
|
# @@ReadME : zz-nginx.sh --help
|
||||||
|
# @@Copyright : Copyright: (c) 2025 Jason Hempstead, Casjays Developments
|
||||||
|
# @@Created : Tuesday, May 13, 2025 15:59 EDT
|
||||||
|
# @@File : zz-nginx.sh
|
||||||
|
# @@Description :
|
||||||
|
# @@Changelog : New script
|
||||||
|
# @@TODO : Better documentation
|
||||||
|
# @@Other :
|
||||||
|
# @@Resource :
|
||||||
|
# @@Terminal App : no
|
||||||
|
# @@sudo/root : no
|
||||||
|
# @@Template : other/start-service
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# shellcheck disable=SC1003,SC2016,SC2031,SC2120,SC2155,SC2199,SC2317
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# run trap command on exit
|
||||||
|
trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE";exit $retVal' SIGINT SIGTERM EXIT
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# setup debugging - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
|
||||||
|
[ -f "/config/.debug" ] && [ -z "$DEBUGGER_OPTIONS" ] && export DEBUGGER_OPTIONS="$(<"/config/.debug")" || DEBUGGER_OPTIONS="${DEBUGGER_OPTIONS:-}"
|
||||||
|
{ [ "$DEBUGGER" = "on" ] || [ -f "/config/.debug" ]; } && echo "Enabling debugging" && set -xo pipefail -x$DEBUGGER_OPTIONS && export DEBUGGER="on" || set -o pipefail
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
export PATH="/usr/local/etc/docker/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin"
|
export PATH="/usr/local/etc/docker/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# run trap command on exit
|
SCRIPT_FILE="$0"
|
||||||
trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "true" ] && [ -f "/run/init.d/$EXEC_CMD_BIN.pid" ] && rm -Rf "/run/init.d/$EXEC_CMD_BIN.pid";exit $retVal' SIGINT SIGTERM EXIT
|
SERVICE_NAME="nginx"
|
||||||
|
SCRIPT_NAME="$(basename -- "$SCRIPT_FILE" 2>/dev/null)"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# exit if __start_init_scripts function hasn't been Initialized
|
||||||
|
if [ ! -f "/run/__start_init_scripts.pid" ]; then
|
||||||
|
echo "__start_init_scripts function hasn't been Initialized" >&2
|
||||||
|
SERVICE_IS_RUNNING="no"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# import the functions file
|
# import the functions file
|
||||||
if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then
|
if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then
|
||||||
@ -18,156 +50,642 @@ for set_env in "/root/env.sh" "/usr/local/etc/docker/env"/*.sh "/config/env"/*.s
|
|||||||
[ -f "$set_env" ] && . "$set_env"
|
[ -f "$set_env" ] && . "$set_env"
|
||||||
done
|
done
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
printf '%s\n' "# - - - Initializing $SERVICE_NAME - - - #"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Custom functions
|
# Custom functions
|
||||||
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# execute command variables
|
# Script to execute
|
||||||
WORKDIR="" # set working directory
|
START_SCRIPT="/usr/local/etc/docker/exec/$SERVICE_NAME"
|
||||||
SERVICE_UID="0" # set the user id
|
|
||||||
SERVICE_USER="root" # execute command as another user
|
|
||||||
SERVICE_PORT="80" # port which service is listening on
|
|
||||||
EXEC_CMD_BIN="nginx" # command to execute
|
|
||||||
EXEC_CMD_ARGS="-c /etc/nginx/nginx.conf" # command arguments
|
|
||||||
PRE_EXEC_MESSAGE="" # Show message before execute
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Other variables that are needed
|
# Reset environment before executing service
|
||||||
data_dir="/data"
|
RESET_ENV="no"
|
||||||
etc_dir="/etc/nginx"
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
conf_dir="/config/nginx"
|
# Set webroot
|
||||||
www_dir="${WWW_ROOT_DIR:-/usr/local/share/ariang}"
|
WWW_ROOT_DIR="/usr/local/share/ariang"
|
||||||
nginx_bin="$(type -P 'nginx')"
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
SERVICE_PORT="${ARIA2RPCPORT:-${PORT:-$SERVICE_PORT}}"
|
# Default predefined variables
|
||||||
|
DATA_DIR="/data/nginx" # set data directory
|
||||||
|
CONF_DIR="/config/nginx" # set config directory
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# set the containers etc directory
|
||||||
|
ETC_DIR="/etc/nginx"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# set the var dir
|
||||||
|
VAR_DIR=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
TMP_DIR="/tmp/nginx" # set the temp dir
|
||||||
|
RUN_DIR="/run/nginx" # set scripts pid dir
|
||||||
|
LOG_DIR="/data/logs/nginx" # set log directory
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set the working dir
|
||||||
|
WORK_DIR=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# port which service is listening on
|
||||||
|
SERVICE_PORT="80"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# User to use to launch service - IE: postgres
|
||||||
|
RUNAS_USER="root" # normally root
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# User and group in which the service switches to - IE: nginx,apache,mysql,postgres
|
||||||
|
#SERVICE_USER="nginx" # execute command as another user
|
||||||
|
#SERVICE_GROUP="nginx" # Set the service group
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set password length
|
||||||
|
RANDOM_PASS_USER=""
|
||||||
|
RANDOM_PASS_ROOT=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set user and group ID
|
||||||
|
#SERVICE_UID="0" # set the user id
|
||||||
|
#SERVICE_GID="0" # set the group id
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# execute command variables - keep single quotes variables will be expanded later
|
||||||
|
EXEC_CMD_BIN='nginx' # command to execute
|
||||||
|
EXEC_CMD_ARGS='-c $CONF_DIR/nginx.conf' # command arguments
|
||||||
|
EXEC_PRE_SCRIPT='' # execute script before
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Is this service a web server
|
||||||
|
IS_WEB_SERVER="yes"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Is this service a database server
|
||||||
|
IS_DATABASE_SERVICE="no"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Does this service use a database server
|
||||||
|
USES_DATABASE_SERVICE="no"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set defualt type - [custom,sqlite,redis,postgres,mariadb,mysql,couchdb,mongodb,supabase]
|
||||||
|
DATABASE_SERVICE_TYPE="sqlite"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Show message before execute
|
||||||
|
PRE_EXEC_MESSAGE=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set the wait time to execute __post_execute function - minutes
|
||||||
|
POST_EXECUTE_WAIT_TIME="1"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Update path var
|
||||||
|
PATH="$PATH:."
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Lets get containers ip address
|
||||||
|
IP4_ADDRESS="$(__get_ip4)"
|
||||||
|
IP6_ADDRESS="$(__get_ip6)"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Where to save passwords to
|
||||||
|
ROOT_FILE_PREFIX="/config/secure/auth/root" # directory to save username/password for root user
|
||||||
|
USER_FILE_PREFIX="/config/secure/auth/user" # directory to save username/password for normal user
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# root/admin user info password/random]
|
||||||
|
root_user_name="${NGINX_ROOT_USER_NAME:-}" # root user name
|
||||||
|
root_user_pass="${NGINX_ROOT_PASS_WORD:-}" # root user password
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Normal user info [password/random]
|
||||||
|
user_name="${NGINX_USER_NAME:-}" # normal user name
|
||||||
|
user_pass="${NGINX_USER_PASS_WORD:-}" # normal user password
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Load variables from config
|
||||||
|
[ -f "/config/env/nginx.script.sh" ] && . "/config/env/nginx.script.sh" # Generated by my dockermgr script
|
||||||
|
[ -f "/config/env/nginx.sh" ] && . "/config/env/nginx.sh" # Overwrite the variabes
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Additional predefined variables
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Additional variables
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Specifiy custom directories to be created
|
||||||
|
ADD_APPLICATION_FILES=""
|
||||||
|
ADD_APPLICATION_DIRS=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
APPLICATION_FILES="$LOG_DIR/$SERVICE_NAME.log"
|
||||||
|
APPLICATION_DIRS="$ETC_DIR $CONF_DIR $LOG_DIR $TMP_DIR $RUN_DIR $VAR_DIR"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Additional config dirs - will be Copied to /etc/$name
|
||||||
|
ADDITIONAL_CONFIG_DIRS=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# define variables that need to be loaded into the service - escape quotes - var=\"value\",other=\"test\"
|
||||||
|
CMD_ENV=""
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Overwrite based on file/directory
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Per Application Variables or imports
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Custom commands to run before copying to /config
|
||||||
|
__run_precopy() {
|
||||||
|
# Define environment
|
||||||
|
local hostname=${HOSTNAME}
|
||||||
|
[ -d "/run/healthcheck" ] || mkdir -p "/run/healthcheck"
|
||||||
|
# Define actions/commands
|
||||||
|
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __run_precopy_local | grep -q 'function'; then __run_precopy_local; fi
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Custom prerun functions - IE setup WWW_ROOT_DIR
|
||||||
|
__execute_prerun() {
|
||||||
|
# Define environment
|
||||||
|
local hostname=${HOSTNAME}
|
||||||
|
# Define actions/commands
|
||||||
|
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __execute_prerun_local | grep -q 'function'; then __execute_prerun_local; fi
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Run any pre-execution checks
|
||||||
|
__run_pre_execute_checks() {
|
||||||
|
# Set variables
|
||||||
|
local exitStatus=0
|
||||||
|
local pre_execute_checks_MessageST="Running preexecute check for $SERVICE_NAME" # message to show at start
|
||||||
|
local pre_execute_checks_MessageEnd="Finished preexecute check for $SERVICE_NAME" # message to show at completion
|
||||||
|
__banner "$pre_execute_checks_MessageST"
|
||||||
|
# Put command to execute in parentheses
|
||||||
|
{
|
||||||
|
true
|
||||||
|
}
|
||||||
|
exitStatus=$?
|
||||||
|
__banner "$pre_execute_checks_MessageEnd: Status $exitStatus"
|
||||||
|
|
||||||
|
# show exit message
|
||||||
|
if [ $exitStatus -ne 0 ]; then
|
||||||
|
echo "The pre-execution check has failed" >&2
|
||||||
|
[ -f "$SERVICE_PID_FILE" ] && rm -Rf "$SERVICE_PID_FILE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __run_pre_execute_checks_local | grep -q 'function'; then __run_pre_execute_checks_local; fi
|
||||||
|
# exit function
|
||||||
|
return $exitStatus
|
||||||
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# use this function to update config files - IE: change port
|
# use this function to update config files - IE: change port
|
||||||
__update_conf_files() {
|
__update_conf_files() {
|
||||||
echo "Initializing nginx web server in $conf_dir"
|
local exitCode=0 # default exit code
|
||||||
mkdir -p "$data_dir/logs/nginx"
|
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname
|
||||||
chmod -Rf 777 "$data_dir/logs/nginx"
|
|
||||||
[ -d "$etc_dir" ] || mkdir -p "$etc_dir"
|
|
||||||
[ -d "$conf_dir" ] && cp -Rf "$conf_dir/." "$etc_dir/"
|
|
||||||
#
|
|
||||||
[ -d "$www_dir" ] || mkdir -p "$www_dir"
|
|
||||||
[ -d "$www_dir/www/health" ] || mkdir -p "$www_dir/www/health"
|
|
||||||
[ -f "$www_dir/www/health/index.txt" ] || echo 'ok' >"$www_dir/www/health/index.txt"
|
|
||||||
[ -f "$www_dir/www/health/index.json" ] || echo '{ "status": "ok" }' >"$www_dir/www/health/index.json"
|
|
||||||
#
|
|
||||||
__replace "REPLACE_SERVER_PORT" "$SERVICE_PORT" "$etc_dir/nginx.conf"
|
|
||||||
__replace "REPLACE_SERVER_PORT" "$SERVICE_PORT" "$etc_dir/vhosts.d/default.conf"
|
|
||||||
__replace "REPLACE_SERVER_PORT" "$SERVICE_PORT" "/etc/aria2/aria-ng.config.js"
|
|
||||||
__replace "REPLACE_SERVER_ADDR" "$CONTAINER_IP4_ADDRESS" "/etc/aria2/aria-ng.config.js"
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# use this function to setup ssl support
|
# delete files
|
||||||
__update_ssl_conf() {
|
#__rm ""
|
||||||
|
|
||||||
return 0
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# custom commands
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# replace variables
|
||||||
|
# __replace "" "" "$CONF_DIR/nginx.conf"
|
||||||
|
# replace variables recursively
|
||||||
|
# __find_replace "" "" "$CONF_DIR"
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# define actions
|
||||||
|
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __update_conf_files_local | grep -q 'function'; then __update_conf_files_local; fi
|
||||||
|
# exit function
|
||||||
|
return $exitCode
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# function to run before executing
|
# function to run before executing
|
||||||
__pre_execute() {
|
__pre_execute() {
|
||||||
grep -s -q "nginx:" "/etc/passwd" && chown -Rf nginx:nginx "$etc_dir" "$www_dir" "$data_dir/logs/nginx"
|
local exitCode=0 # default exit code
|
||||||
|
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname
|
||||||
|
# execute if directories is empty
|
||||||
|
# __is_dir_empty "$CONF_DIR" && true
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# define actions to run after copying to /config
|
||||||
|
|
||||||
return 0
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# unset unneeded variables
|
||||||
|
unset sysname
|
||||||
|
# Lets wait a few seconds before continuing
|
||||||
|
sleep 5
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __pre_execute_local | grep -q 'function'; then __pre_execute_local; fi
|
||||||
|
# exit function
|
||||||
|
return $exitCode
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# function to run after executing
|
||||||
|
__post_execute() {
|
||||||
|
local pid="" # init pid var
|
||||||
|
local retVal=0 # set default exit code
|
||||||
|
local ctime=${POST_EXECUTE_WAIT_TIME:-1} # how long to wait before executing
|
||||||
|
local waitTime=$((ctime * 60)) # convert minutes to seconds
|
||||||
|
local postMessageST="Running post commands for $SERVICE_NAME" # message to show at start
|
||||||
|
local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion
|
||||||
|
# wait
|
||||||
|
sleep $waitTime
|
||||||
|
# execute commands after waiting
|
||||||
|
(
|
||||||
|
# show message
|
||||||
|
__banner "$postMessageST"
|
||||||
|
# commands to execute
|
||||||
|
sleep 5
|
||||||
|
# show exit message
|
||||||
|
__banner "$postMessageEnd: Status $retVal"
|
||||||
|
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
||||||
|
pid=$!
|
||||||
|
ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$" && retVal=0 || retVal=10
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __post_execute_local | grep -q 'function'; then __post_execute_local; fi
|
||||||
|
# exit function
|
||||||
|
return $retVal
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# use this function to update config files - IE: change port
|
||||||
|
__pre_message() {
|
||||||
|
local exitCode=0
|
||||||
|
[ -n "$PRE_EXEC_MESSAGE" ] && eval echo "$PRE_EXEC_MESSAGE"
|
||||||
|
# execute commands
|
||||||
|
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __pre_message_local | grep -q 'function'; then __pre_message_local; fi
|
||||||
|
# exit function
|
||||||
|
return $exitCode
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# use this function to setup ssl support
|
||||||
|
__update_ssl_conf() {
|
||||||
|
local exitCode=0
|
||||||
|
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname
|
||||||
|
# execute commands
|
||||||
|
|
||||||
|
# allow custom functions
|
||||||
|
if builtin type -t __update_ssl_conf_local | grep -q 'function'; then __update_ssl_conf_local; fi
|
||||||
|
# set exitCode
|
||||||
|
return $exitCode
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__create_service_env() {
|
||||||
|
local exitCode=0
|
||||||
|
if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ]; then
|
||||||
|
cat <<EOF | tee -p "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" &>/dev/null
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# root/admin user info [password/random]
|
||||||
|
#ENV_ROOT_USER_NAME="${ENV_ROOT_USER_NAME:-$NGINX_ROOT_USER_NAME}" # root user name
|
||||||
|
#ENV_ROOT_USER_PASS="${ENV_ROOT_USER_NAME:-$NGINX_ROOT_PASS_WORD}" # root user password
|
||||||
|
#root_user_name="${ENV_ROOT_USER_NAME:-$root_user_name}" #
|
||||||
|
#root_user_pass="${ENV_ROOT_USER_PASS:-$root_user_pass}" #
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
#Normal user info [password/random]
|
||||||
|
#ENV_USER_NAME="${ENV_USER_NAME:-$NGINX_USER_NAME}" #
|
||||||
|
#ENV_USER_PASS="${ENV_USER_PASS:-$NGINX_USER_PASS_WORD}" #
|
||||||
|
#user_name="${ENV_USER_NAME:-$user_name}" # normal user name
|
||||||
|
#user_pass="${ENV_USER_PASS:-$user_pass}" # normal user password
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
if [ ! -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" ]; then
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__run_precopy_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__execute_prerun_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__run_pre_execute_checks_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__update_conf_files_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__pre_execute_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__post_execute_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__pre_message_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__update_ssl_conf_local() { true; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
fi
|
||||||
|
__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" || exitCode=$((exitCode + 1))
|
||||||
|
__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" || exitCode=$((exitCode + 1))
|
||||||
|
return $exitCode
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# script to start server
|
# script to start server
|
||||||
__run_start_script() {
|
__run_start_script() {
|
||||||
local workdir="${WORKDIR:-$HOME}"
|
local runExitCode=0
|
||||||
local cmd="$EXEC_CMD_BIN $EXEC_CMD_ARGS"
|
local workdir="$(eval echo "${WORK_DIR:-}")" # expand variables
|
||||||
local user="${SERVICE_USER:-root}"
|
local cmd="$(eval echo "${EXEC_CMD_BIN:-}")" # expand variables
|
||||||
local lc_type="${LC_ALL:-${LC_CTYPE:-$LANG}}"
|
local args="$(eval echo "${EXEC_CMD_ARGS:-}")" # expand variables
|
||||||
local home="${workdir//\/root/\/home\/docker}"
|
local name="$(eval echo "${EXEC_CMD_NAME:-}")" # expand variables
|
||||||
local path="/usr/local/bin:/usr/bin:/bin:/usr/sbin"
|
local pre="$(eval echo "${EXEC_PRE_SCRIPT:-}")" # expand variables
|
||||||
case "$1" in
|
local extra_env="$(eval echo "${CMD_ENV//,/ }")" # expand variables
|
||||||
check) shift 1 && __pgrep $EXEC_CMD_BIN || return 5 ;;
|
local lc_type="$(eval echo "${LANG:-${LC_ALL:-$LC_CTYPE}}")" # expand variables
|
||||||
*) su_cmd env -i PWD="$home" HOME="$home" LC_CTYPE="$lc_type" PATH="$path" USER="$user" sh -c "$cmd" || return 10 ;;
|
local home="$(eval echo "${workdir//\/root/\/tmp\/docker}")" # expand variables
|
||||||
esac
|
local path="$(eval echo "$PATH")" # expand variables
|
||||||
}
|
local message="$(eval echo "")" # expand variables
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname
|
||||||
# process check functions
|
[ -f "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh" ] && . "$CONF_DIR/$SERVICE_NAME.exec_cmd.sh"
|
||||||
__pcheck() { [ -n "$(type -P pgrep 2>/dev/null)" ] && pgrep -x "$1" &>/dev/null && return 0 || return 10; }
|
#
|
||||||
__pgrep() { __pcheck "${1:-EXEC_CMD_BIN}" || __ps aux 2>/dev/null | grep -Fw " ${1:-$EXEC_CMD_BIN}" | grep -qv ' grep' | grep '^' && return 0 || return 10; }
|
if [ -z "$cmd" ]; then
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
__post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt"
|
||||||
# Allow ENV_ variable
|
retVal=$?
|
||||||
[ -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ] && "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" # Import env file
|
echo "Initializing $SCRIPT_NAME has completed"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
exit $retVal
|
||||||
WORKDIR="${ENV_WORKDIR:-$WORKDIR}" # change to directory
|
else
|
||||||
SERVICE_USER="${ENV_SERVICE_USER:-$SERVICE_USER}" # execute command as another user
|
|
||||||
SERVICE_UID="${ENV_SERVICE_UID:-$SERVICE_UID}" # set the user id
|
|
||||||
SERVICE_PORT="${ENV_SERVICE_PORT:-$SERVICE_PORT}" # port which service is listening on
|
|
||||||
EXEC_CMD_BIN="${ENV_EXEC_CMD_BIN:-$EXEC_CMD_BIN}" # command to execute
|
|
||||||
EXEC_CMD_ARGS="${ENV_EXEC_CMD_ARGS:-$EXEC_CMD_ARGS}" # command arguments
|
|
||||||
PRE_EXEC_MESSAGE="${ENV_PRE_EXEC_MESSAGE:-$PRE_EXEC_MESSAGE}" # Show message before execute
|
|
||||||
SERVICE_EXIT_CODE=0 # default exit code
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
printf '%s\n' "# - - - Attempting to start $EXEC_CMD_BIN - - - #"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# ensure the command exists
|
# ensure the command exists
|
||||||
if [ ! -f "$(type -P "$EXEC_CMD_BIN")" ] && [ -z "$EXEC_CMD_BIN" ]; then
|
if [ ! -x "$cmd" ]; then
|
||||||
echo "$EXEC_CMD_BIN is not a valid command"
|
echo "$name is not a valid executable"
|
||||||
exit 2
|
return 2
|
||||||
fi
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
# check if process is already running
|
|
||||||
if __pgrep "$EXEC_CMD_BIN"; then
|
|
||||||
SERVICE_IS_RUNNING="true"
|
|
||||||
echo "$EXEC_CMD_BIN is running"
|
|
||||||
exit 0
|
|
||||||
fi
|
fi
|
||||||
|
# check and exit if already running
|
||||||
|
if __proc_check "$name" || __proc_check "$cmd"; then
|
||||||
|
echo "$name is already running" >&2
|
||||||
|
return 0
|
||||||
|
else
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# show message if env exists
|
# show message if env exists
|
||||||
if [ -n "$EXEC_CMD_BIN" ]; then
|
if [ -n "$cmd" ]; then
|
||||||
[ -n "$SERVICE_USER" ] && echo "Setting up service to run as $SERVICE_USER"
|
[ -n "$SERVICE_USER" ] && echo "Setting up $cmd to run as $SERVICE_USER" || SERVICE_USER="root"
|
||||||
[ -n "$SERVICE_PORT" ] && echo "$EXEC_CMD_BIN will be running on $SERVICE_PORT"
|
[ -n "$SERVICE_PORT" ] && echo "$name will be running on port $SERVICE_PORT" || SERVICE_PORT=""
|
||||||
|
fi
|
||||||
|
if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then
|
||||||
|
export cmd_exec="$pre $cmd $args"
|
||||||
|
message="Starting service: $name $args through $pre"
|
||||||
|
else
|
||||||
|
export cmd_exec="$cmd $args"
|
||||||
|
message="Starting service: $name $args"
|
||||||
|
fi
|
||||||
|
[ -n "$su_exec" ] && echo "using $su_exec" | tee -a -p "/data/logs/init.txt"
|
||||||
|
echo "$message" | tee -a -p "/data/logs/init.txt"
|
||||||
|
su_cmd touch "$SERVICE_PID_FILE"
|
||||||
|
if [ "$RESET_ENV" = "yes" ]; then
|
||||||
|
env_command="$(echo "env -i HOME=\"$home\" LC_CTYPE=\"$lc_type\" PATH=\"$path\" HOSTNAME=\"$sysname\" USER=\"${SERVICE_USER:-$RUNAS_USER}\" $extra_env")"
|
||||||
|
execute_command="$(__trim "$su_exec $env_command $cmd_exec")"
|
||||||
|
if [ ! -f "$START_SCRIPT" ]; then
|
||||||
|
cat <<EOF >"$START_SCRIPT"
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT
|
||||||
|
#
|
||||||
|
set -Eeo pipefail
|
||||||
|
# Setting up $cmd to run as ${SERVICE_USER:-root} with env
|
||||||
|
retVal=10
|
||||||
|
cmd="$cmd"
|
||||||
|
SERVICE_NAME="$SERVICE_NAME"
|
||||||
|
SERVICE_PID_FILE="$SERVICE_PID_FILE"
|
||||||
|
$execute_command 2>"/dev/stderr" >>"$LOG_DIR/$SERVICE_NAME.log" &
|
||||||
|
execPid=\$!
|
||||||
|
sleep 2
|
||||||
|
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)"
|
||||||
|
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10
|
||||||
|
[ "\$retVal" = 0 ] && echo "\$cmd has been started" && printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME" || echo "Failed to start $execute_command" >&2
|
||||||
|
exit \$retVal
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ ! -f "$START_SCRIPT" ]; then
|
||||||
|
execute_command="$(__trim "$su_exec $cmd_exec")"
|
||||||
|
cat <<EOF >"$START_SCRIPT"
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
trap 'exitCode=\$?;[ \$exitCode -ne 0 ] && [ -f "\$SERVICE_PID_FILE" ] && rm -Rf "\$SERVICE_PID_FILE";exit \$exitCode' EXIT
|
||||||
|
#
|
||||||
|
set -Eeo pipefail
|
||||||
|
# Setting up $cmd to run as ${SERVICE_USER:-root}
|
||||||
|
retVal=10
|
||||||
|
cmd="$cmd"
|
||||||
|
SERVICE_NAME="$SERVICE_NAME"
|
||||||
|
SERVICE_PID_FILE="$SERVICE_PID_FILE"
|
||||||
|
$execute_command 2>>"/dev/stderr" >>"$LOG_DIR/$SERVICE_NAME.log" &
|
||||||
|
execPid=\$!
|
||||||
|
sleep 2
|
||||||
|
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)"
|
||||||
|
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10
|
||||||
|
[ "\$retVal" = 0 ] && echo "\$cmd has been started" || echo "Failed to start $execute_command" >&2 >&2
|
||||||
|
exit \$retVal
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
[ -x "$START_SCRIPT" ] || chmod 755 -Rf "$START_SCRIPT"
|
||||||
|
[ "$CONTAINER_INIT" = "yes" ] || eval sh -c "$START_SCRIPT"
|
||||||
|
runExitCode=$?
|
||||||
|
fi
|
||||||
|
return $runExitCode
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# username and password actions
|
||||||
|
__run_secure_function() {
|
||||||
|
local filesperms
|
||||||
|
if [ -n "$user_name" ] || [ -n "$user_pass" ]; then
|
||||||
|
for filesperms in "${USER_FILE_PREFIX}"/*; do
|
||||||
|
if [ -e "$filesperms" ]; then
|
||||||
|
chmod -Rf 600 "$filesperms"
|
||||||
|
chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null
|
||||||
|
fi
|
||||||
|
done 2>/dev/null | tee -p -a "/data/logs/init.txt"
|
||||||
|
fi
|
||||||
|
if [ -n "$root_user_name" ] || [ -n "$root_user_pass" ]; then
|
||||||
|
for filesperms in "${ROOT_FILE_PREFIX}"/*; do
|
||||||
|
if [ -e "$filesperms" ]; then
|
||||||
|
chmod -Rf 600 "$filesperms"
|
||||||
|
chown -Rf $SERVICE_USER:$SERVICE_USER "$filesperms" 2>/dev/null
|
||||||
|
fi
|
||||||
|
done 2>/dev/null | tee -p -a "/data/logs/init.txt"
|
||||||
|
fi
|
||||||
|
unset filesperms
|
||||||
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Allow ENV_ variable - Import env file
|
||||||
|
__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" && . "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh"
|
||||||
|
__file_exists_with_content "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh" && . "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.local.sh"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
SERVICE_EXIT_CODE=0 # default exit code
|
||||||
|
# application specific
|
||||||
|
EXEC_CMD_NAME="$(basename -- "$EXEC_CMD_BIN")" # set the binary name
|
||||||
|
SERVICE_PID_FILE="/run/init.d/$EXEC_CMD_NAME.pid" # set the pid file location
|
||||||
|
SERVICE_PID_NUMBER="$(__pgrep)" # check if running
|
||||||
|
EXEC_CMD_BIN="$(type -P "$EXEC_CMD_BIN" || echo "$EXEC_CMD_BIN")" # set full path
|
||||||
|
EXEC_PRE_SCRIPT="$(type -P "$EXEC_PRE_SCRIPT" || echo "$EXEC_PRE_SCRIPT")" # set full path
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Only run check
|
||||||
|
__check_service "$1" && SERVICE_IS_RUNNING=yes
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# ensure needed directories exists
|
||||||
|
[ -d "$LOG_DIR" ] || mkdir -p "$LOG_DIR"
|
||||||
|
[ -d "$RUN_DIR" ] || mkdir -p "$RUN_DIR"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# create auth directories
|
||||||
|
[ -n "$USER_FILE_PREFIX" ] && { [ -d "$USER_FILE_PREFIX" ] || mkdir -p "$USER_FILE_PREFIX"; }
|
||||||
|
[ -n "$ROOT_FILE_PREFIX" ] && { [ -d "$ROOT_FILE_PREFIX" ] || mkdir -p "$ROOT_FILE_PREFIX"; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
[ -n "$RUNAS_USER" ] || RUNAS_USER="root"
|
||||||
|
[ -n "$SERVICE_USER" ] || SERVICE_USER="$RUNAS_USER"
|
||||||
|
[ -n "$SERVICE_GROUP" ] || SERVICE_GROUP="${SERVICE_USER:-$RUNAS_USER}"
|
||||||
|
[ "$IS_WEB_SERVER" = "yes" ] && RESET_ENV="yes" && __is_htdocs_mounted
|
||||||
|
[ "$IS_WEB_SERVER" = "yes" ] && [ -z "$SERVICE_PORT" ] && SERVICE_PORT="80"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Database env
|
||||||
|
if [ "$IS_DATABASE_SERVICE" = "yes" ] || [ "$USES_DATABASE_SERVICE" = "yes" ]; then
|
||||||
|
RESET_ENV="no"
|
||||||
|
DATABASE_CREATE="${ENV_DATABASE_CREATE:-$DATABASE_CREATE}"
|
||||||
|
DATABASE_USER_NORMAL="${ENV_DATABASE_USER:-${DATABASE_USER_NORMAL:-$user_name}}"
|
||||||
|
DATABASE_PASS_NORMAL="${ENV_DATABASE_PASSWORD:-${DATABASE_PASS_NORMAL:-$user_pass}}"
|
||||||
|
DATABASE_USER_ROOT="${ENV_DATABASE_ROOT_USER:-${DATABASE_USER_ROOT:-$root_user_name}}"
|
||||||
|
DATABASE_PASS_ROOT="${ENV_DATABASE_ROOT_PASSWORD:-${DATABASE_PASS_ROOT:-$root_user_pass}}"
|
||||||
|
if [ -n "$DATABASE_PASS_NORMAL" ] && [ ! -f "${USER_FILE_PREFIX}/db_pass_user" ]; then
|
||||||
|
echo "$DATABASE_PASS_NORMAL" >"${USER_FILE_PREFIX}/db_pass_user"
|
||||||
|
fi
|
||||||
|
if [ -n "$DATABASE_PASS_ROOT" ] && [ ! -f "${ROOT_FILE_PREFIX}/db_pass_root" ]; then
|
||||||
|
echo "$DATABASE_PASS_ROOT" >"${ROOT_FILE_PREFIX}/db_pass_root"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Change to working directory
|
# [DATABASE_DIR_[SQLITE,REDIS,POSTGRES,MARIADB,COUCHDB,MONGODB,SUPABASE]]
|
||||||
[ -n "$WORKDIR" ] && mkdir -p "$WORKDIR" && __cd "$WORKDIR" && echo "Changed to $PWD"
|
if [ "$DATABASE_SERVICE_TYPE" = "custom" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_CUSTOM:-/data/db/custom}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_CUSTOM:-/usr/local/share/httpd/admin/databases}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_CUSTOM:-/admin/dbadmin}"
|
||||||
|
elif [ "$SERVICE_NAME" = "redis" ] || [ "$DATABASE_SERVICE_TYPE" = "redis" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_REDIS:-/data/db/redis}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_REDIS:-/usr/local/share/httpd/admin/redis}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_REDIS:-/admin/redis}"
|
||||||
|
elif [ "$SERVICE_NAME" = "postgres" ] || [ "$DATABASE_SERVICE_TYPE" = "postgres" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_POSTGRES:-/data/db/postgres}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_POSTGRES:-/usr/local/share/httpd/admin/postgres}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_POSTGRES:-/admin/postgres}"
|
||||||
|
elif [ "$SERVICE_NAME" = "mariadb" ] || [ "$DATABASE_SERVICE_TYPE" = "mariadb" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_MARIADB:-/data/db/mariadb}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MARIADB:-/usr/local/share/httpd/admin/mysql}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MARIADB:-/admin/mysql}"
|
||||||
|
elif [ "$SERVICE_NAME" = "mysql" ] || [ "$DATABASE_SERVICE_TYPE" = "mysql" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_MYSQL:-/data/db/mysql}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MYSQL:-/usr/local/share/httpd/admin/mysql}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MYSQL:-/admin/mysql}"
|
||||||
|
elif [ "$SERVICE_NAME" = "couchdb" ] || [ "$DATABASE_SERVICE_TYPE" = "couchdb" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_COUCHDB:-/data/db/couchdb}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_COUCHDB:-/usr/local/share/httpd/admin/couchdb}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_COUCHDB:-/admin/couchdb}"
|
||||||
|
elif [ "$SERVICE_NAME" = "mongodb" ] || [ "$DATABASE_SERVICE_TYPE" = "mongodb" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_MONGODB:-/data/db/mongodb}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_MONGODB:-/usr/local/share/httpd/admin/mongodb}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_MONGODB:-/admin/mongodb}"
|
||||||
|
elif [ "$SERVICE_NAME" = "supabase" ] || [ "$DATABASE_SERVICE_TYPE" = "supabase" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_SUPABASE:-/data/db/supabase}"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SUPABASE:-/usr/local/share/httpd/admin/supabase}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SUPBASE:-/admin/supabase}"
|
||||||
|
elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ]; then
|
||||||
|
DATABASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME"
|
||||||
|
DATABASE_BASE_DIR="${DATABASE_DIR_SQLITE:-/data/db/sqlite}/$SERVER_NAME"
|
||||||
|
DATABASE_ADMIN_WWW_ROOT="${DATABASE_ADMIN_WWW_ROOT_SQLITE:-/usr/local/share/httpd/admin/sqlite}"
|
||||||
|
[ -d "$DATABASE_ADMIN_WWW_ROOT" ] && SERVER_ADMIN_URL="${SERVER_ADMIN_URL_SQLITE:-/admin/sqlite}"
|
||||||
|
[ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR"
|
||||||
|
chmod 777 "$DATABASE_DIR"
|
||||||
|
fi
|
||||||
|
[ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; }
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Allow variables via imports - Overwrite existing
|
||||||
|
[ -f "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh" ] && . "/config/env/${SERVICE_NAME:-$SCRIPT_NAME}.sh"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# set password to random if variable is random
|
||||||
|
[ "$user_pass" = "random" ] && user_pass="$(__random_password ${RANDOM_PASS_USER:-16})"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
[ "$root_user_pass" = "random" ] && root_user_pass="$(__random_password ${RANDOM_PASS_ROOT:-16})"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Allow setting initial users and passwords via environment and save to file
|
||||||
|
[ -n "$user_name" ] && echo "$user_name" >"${USER_FILE_PREFIX}/${SERVICE_NAME}_name"
|
||||||
|
[ -n "$user_pass" ] && echo "$user_pass" >"${USER_FILE_PREFIX}/${SERVICE_NAME}_pass"
|
||||||
|
[ -n "$root_user_name" ] && echo "$root_user_name" >"${ROOT_FILE_PREFIX}/${SERVICE_NAME}_name"
|
||||||
|
[ -n "$root_user_pass" ] && echo "$root_user_pass" >"${ROOT_FILE_PREFIX}/${SERVICE_NAME}_pass"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# create needed dirs
|
||||||
|
[ -d "$LOG_DIR" ] || mkdir -p "$LOG_DIR"
|
||||||
|
[ -d "$RUN_DIR" ] || mkdir -p "$RUN_DIR"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Allow per init script usernames and passwords
|
||||||
|
__file_exists_with_content "${USER_FILE_PREFIX}/${SERVICE_NAME}_name" && user_name="$(<"${USER_FILE_PREFIX}/${SERVICE_NAME}_name")"
|
||||||
|
__file_exists_with_content "${USER_FILE_PREFIX}/${SERVICE_NAME}_pass" && user_pass="$(<"${USER_FILE_PREFIX}/${SERVICE_NAME}_pass")"
|
||||||
|
__file_exists_with_content "${ROOT_FILE_PREFIX}/${SERVICE_NAME}_name" && root_user_name="$(<"${ROOT_FILE_PREFIX}/${SERVICE_NAME}_name")"
|
||||||
|
__file_exists_with_content "${ROOT_FILE_PREFIX}/${SERVICE_NAME}_pass" && root_user_pass="$(<"${ROOT_FILE_PREFIX}/${SERVICE_NAME}_pass")"
|
||||||
|
__file_exists_with_content "${USER_FILE_PREFIX}/db_pass_user" && DATABASE_PASS_NORMAL="$(<"${USER_FILE_PREFIX}/db_pass_user")"
|
||||||
|
__file_exists_with_content "${ROOT_FILE_PREFIX}/db_pass_root" && DATABASE_PASS_ROOT="$(<"${ROOT_FILE_PREFIX}/db_pass_root")"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# set hostname for script
|
||||||
|
sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__create_service_env
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Setup /config directories
|
||||||
|
__init_config_etc
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# pre-run function
|
||||||
|
__execute_prerun
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# create user if needed
|
||||||
|
__create_service_user "$SERVICE_USER" "$SERVICE_GROUP" "${WORK_DIR:-/home/$SERVICE_USER}" "${SERVICE_UID:-}" "${SERVICE_GID:-}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Modify user if needed
|
||||||
|
__set_user_group_id $SERVICE_USER ${SERVICE_UID:-} ${SERVICE_GID:-}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Create base directories
|
||||||
|
__setup_directories
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# set switch user command
|
||||||
|
__switch_to_user
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Initialize the home/working dir
|
||||||
|
__init_working_dir
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# show init message
|
||||||
|
__pre_message
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
#
|
||||||
|
__initialize_db_users
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Initialize ssl
|
# Initialize ssl
|
||||||
__update_ssl_conf
|
__update_ssl_conf
|
||||||
__update_ssl_certs
|
__update_ssl_certs
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set permissions in ${USER_FILE_PREFIX} and ${ROOT_FILE_PREFIX}
|
||||||
|
__run_secure_function
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__run_precopy
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Copy /config to /etc
|
||||||
|
for config_2_etc in $CONF_DIR $ADDITIONAL_CONFIG_DIRS; do
|
||||||
|
__initialize_system_etc "$config_2_etc" 2>/dev/stderr | tee -p -a "/data/logs/init.txt"
|
||||||
|
done
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Replace variables
|
||||||
|
__initialize_replace_variables "$ETC_DIR" "$CONF_DIR" "$ADDITIONAL_CONFIG_DIRS" "$WWW_ROOT_DIR"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
#
|
||||||
|
__initialize_database
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Updating config files
|
# Updating config files
|
||||||
__update_conf_files
|
__update_conf_files
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# run the pre execute commands
|
# run the pre execute commands
|
||||||
[ -n "$PRE_EXEC_MESSAGE" ] && echo "$PRE_EXEC_MESSAGE"
|
|
||||||
__pre_execute
|
__pre_execute
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
WORKDIR="${WORKDIR:-}"
|
# Set permissions
|
||||||
if [ "$SERVICE_USER" = "root" ] || [ -z "$SERVICE_USER" ]; then
|
__fix_permissions "$SERVICE_USER" "$SERVICE_GROUP"
|
||||||
su_cmd() { eval "$@" || return 1; }
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
elif [ "$(builtin type -P gosu)" ]; then
|
#
|
||||||
su_cmd() { gosu $SERVICE_USER "$@" || return 1; }
|
__run_pre_execute_checks 2>/dev/stderr | tee -a -p "/data/logs/entrypoint.log" "/data/logs/init.txt" || return 20
|
||||||
elif [ "$(builtin type -P runuser)" ]; then
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
su_cmd() { runuser -u $SERVICE_USER "$@" || return 1; }
|
__run_start_script 2>>/dev/stderr | tee -p -a "/data/logs/entrypoint.log"
|
||||||
elif [ "$(builtin type -P sudo)" ]; then
|
errorCode=$?
|
||||||
su_cmd() { sudo -u $SERVICE_USER "$@" || return 1; }
|
if [ -n "$EXEC_CMD_BIN" ]; then
|
||||||
elif [ "$(builtin type -P su)" ]; then
|
if [ "$errorCode" -eq 0 ]; then
|
||||||
su_cmd() { su -s /bin/sh - $SERVICE_USER -c "$@" || return 1; }
|
SERVICE_EXIT_CODE=0
|
||||||
|
SERVICE_IS_RUNNING="yes"
|
||||||
else
|
else
|
||||||
echo "Can not switch to $SERVICE_USER: attempting to run as root"
|
SERVICE_EXIT_CODE=$errorCode
|
||||||
su_cmd() { eval "$@" || return 1; }
|
SERVICE_IS_RUNNING="${SERVICE_IS_RUNNING:-no}"
|
||||||
fi
|
[ -s "$SERVICE_PID_FILE" ] || rm -Rf "$SERVICE_PID_FILE"
|
||||||
if [ -n "$WORKDIR" ] && [ "${SERVICE_USER:-$USER}" != "root" ]; then
|
|
||||||
echo "Fixing file permissions"
|
|
||||||
su_cmd chown -Rf $SERVICE_USER $WORKDIR $etc_dir $var_dir $log_dir
|
|
||||||
fi
|
|
||||||
if __pgrep $EXEC_CMD_BIN && [ -f "/run/init.d/$EXEC_CMD_BIN.pid" ]; then
|
|
||||||
SERVICE_EXIT_CODE=1
|
|
||||||
echo "$EXEC_CMD_BIN" is already running
|
|
||||||
else
|
|
||||||
echo "Starting service: $EXEC_CMD_BIN $EXEC_CMD_ARGS"
|
|
||||||
su_cmd touch /run/init.d/$EXEC_CMD_BIN.pid
|
|
||||||
__run_start_script "$@" |& tee -a "/tmp/entrypoint.log"
|
|
||||||
if [ "$?" -ne 0 ]; then
|
|
||||||
echo "Failed to execute: $EXEC_CMD_BIN $EXEC_CMD_ARGS"
|
|
||||||
SERVICE_EXIT_CODE=10 SERVICE_IS_RUNNING="false"
|
|
||||||
su_cmd rm -Rf "/run/init.d/$EXEC_CMD_BIN.pid"
|
|
||||||
fi
|
fi
|
||||||
|
SERVICE_EXIT_CODE=0
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# start the post execute function in background
|
||||||
|
__post_execute 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
__banner "Initializing of $SERVICE_NAME has completed with statusCode: $SERVICE_EXIT_CODE" | tee -p -a "/data/logs/entrypoint.log" "/data/logs/init.txt"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
exit $SERVICE_EXIT_CODE
|
exit $SERVICE_EXIT_CODE
|
||||||
|
@ -4,45 +4,45 @@
|
|||||||
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -o pipefail -x$DEBUGGER_OPTIONS || set -o pipefail
|
[ "$DEBUGGER" = "on" ] && echo "Enabling debugging" && set -o pipefail -x$DEBUGGER_OPTIONS || set -o pipefail
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# import the functions file
|
# import the functions file
|
||||||
if [ -f "/usr/local/etc/docker/functions/entrypoint.sh" ]; then
|
[ -f "/usr/local/etc/docker/functions/entrypoint.sh" ] && . "/usr/local/etc/docker/functions/entrypoint.sh"
|
||||||
. "/usr/local/etc/docker/functions/entrypoint.sh"
|
|
||||||
fi
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# GLOBAL enviroment variables
|
# GLOBAL enviroment variables
|
||||||
USER="${USER:-root}"
|
#USER="${USER:-root}"
|
||||||
LANG="${LANG:-C.UTF-8}"
|
#LANG="${LANG:-C.UTF-8}"
|
||||||
TZ="${TZ:-America/New_York}"
|
#TZ="${TZ:-America/New_York}"
|
||||||
SERVICE_USER="${SERVICE_USER:-root}"
|
#SERVICE_USER="${SERVICE_USER:-root}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# directory settings
|
# directory settings
|
||||||
BACKUP_DIR="${BACKUP_DIR:-/data/backups}"
|
#BACKUP_DIR="${BACKUP_DIR:-/data/backups}"
|
||||||
WWW_ROOT_DIR="${WWW_ROOT_DIR:-/data/htdocs}"
|
#WWW_ROOT_DIR="${WWW_ROOT_DIR:-/usr/local/share/httpd/default}"
|
||||||
LOCAL_BIN_DIR="${LOCAL_BIN_DIR:-/usr/local/bin}"
|
#LOCAL_BIN_DIR="${LOCAL_BIN_DIR:-/usr/local/bin}"
|
||||||
DATABASE_BASE_DIR="${DATABASE_BASE_DIR:-/data/db}"
|
#DATABASE_BASE_DIR="${DATABASE_BASE_DIR:-/data/db}"
|
||||||
DEFAULT_DATA_DIR="${DEFAULT_DATA_DIR:-/usr/local/share/template-files/data}"
|
#DEFAULT_DATA_DIR="${DEFAULT_DATA_DIR:-/usr/local/share/template-files/data}"
|
||||||
DEFAULT_CONF_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/config}"
|
#DEFAULT_CONF_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/config}"
|
||||||
DEFAULT_TEMPLATE_DIR="${DEFAULT_TEMPLATE_DIR:-/usr/local/share/template-files/defaults}"
|
#DEFAULT_TEMPLATE_DIR="${DEFAULT_TEMPLATE_DIR:-/usr/local/share/template-files/defaults}"
|
||||||
|
#DBTYPE="sqlite"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# healthcheck
|
# healthcheck
|
||||||
HEALTH_ENABLED="${HEALTH_ENABLED:-}"
|
#HEALTH_ENABLED="${HEALTH_ENABLED:-$ENV_HEALTH_ENABLED}"
|
||||||
HEALTH_URL="${HEALTH_URL:-}"
|
#HEALTH_URL="${HEALTH_URL:-}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# php settings
|
# php settings
|
||||||
PHP_VERSION="${PHP_VERSION//php/}"
|
#PHP_VERSION="${PHP_VERSION//php/}"
|
||||||
PHP_INI_DIR="${PHP_INI_DIR:-$(__find_php_ini)}"
|
#PHP_INI_DIR="${PHP_INI_DIR:-$(__find_php_ini)}"
|
||||||
PHP_BIN_DIR="${PHP_BIN_DIR:-$(__find_php_bin)}"
|
#PHP_BIN_DIR="${PHP_BIN_DIR:-$(__find_php_bin)}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# services/ports
|
# services/ports
|
||||||
ENV_PORTS="${ENV_PORTS:-}"
|
#ENV_PORTS="${ENV_PORTS:-}"
|
||||||
SERVICE_PORT="${SERVICE_PORT:-$PORT}"
|
#SERVICE_PORT="${SERVICE_PORT:-$PORT}"
|
||||||
WEB_SERVER_PORTS="${WEB_SERVER_PORTS:-}"
|
#WEB_SERVER_PORTS="${WEB_SERVER_PORTS:-$ENV_WEB_SERVER_PORTS}"
|
||||||
SERVICES_LIST="${PROCS_LIST:-$SERVICES_LIST} "
|
#SERVICES_LIST="${PROCS_LIST:-$SERVICES_LIST} "
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# networing info
|
# networing info
|
||||||
HOSTNAME="${HOSTNAME:-casjaysdev-GEN_SCRIPT_REPLACE_APPNAME}"
|
|
||||||
DOMAINNAME="${DOMAINNAME:-}"
|
DOMAINNAME="${DOMAINNAME:-}"
|
||||||
|
HOSTNAME="${HOSTNAME:-casjaysdev-GEN_SCRIPT_REPLACE_APPNAME}"
|
||||||
FULL_DOMAIN_NAME="${FULL_DOMAIN_NAME:-${DOMAINNAME:-$HOSTNAME}}"
|
FULL_DOMAIN_NAME="${FULL_DOMAIN_NAME:-${DOMAINNAME:-$HOSTNAME}}"
|
||||||
SERVER_ADMIN="${SERVER_ADMIN:-root@${EMAIL_DOMAIN:-$DOMAINNAME}}"
|
SERVER_ADMIN="${SERVER_ADMIN:-root@${EMAIL_DOMAIN:-${DOMAINNAME:-$FULL_DOMAIN_NAME}}}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
EMAIL_RELAY="${EMAIL_RELAY:-}"
|
EMAIL_RELAY="${EMAIL_RELAY:-}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# get ip addresses
|
# get ip addresses
|
||||||
@ -50,25 +50,25 @@ CONTAINER_IP4_ADDRESS="${CONTAINER_IP4_ADDRESS:-$(__get_ip4)}"
|
|||||||
CONTAINER_IP6_ADDRESS="${CONTAINER_IP6_ADDRESS:-$(__get_ip6)}"
|
CONTAINER_IP6_ADDRESS="${CONTAINER_IP6_ADDRESS:-$(__get_ip6)}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# cerbot
|
# cerbot
|
||||||
SSL_CERT_BOT="${SSL_CERT_BOT:-false}"
|
#CERT_BOT_MAIL="${CERT_BOT_MAIL:-}"
|
||||||
CERT_BOT_MAIL="${CERT_BOT_MAIL:-}"
|
#CERTBOT_DOMAINS="${CERTBOT_DOMAINS:-}"
|
||||||
CERTBOT_DOMAINS="${CERTBOT_DOMAINS:-}"
|
#CERT_BOT_ENABLED="${CERT_BOT_ENABLED:-false}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# ssl server settings
|
# ssl server settings
|
||||||
SSL_ENABLED="${SSL_ENABLED:-false}"
|
#SSL_ENABLED="${SSL_ENABLED:-false}"
|
||||||
SSL_DIR="${SSL_DIR:-/config/ssl}"
|
#SSL_DIR="${SSL_DIR:-/config/ssl}"
|
||||||
SSL_CA="${SSL_CA:-$SSL_DIR/ca.crt}"
|
#SSL_CA="${SSL_CA:-$SSL_DIR/ca.crt}"
|
||||||
SSL_KEY="${SSL_KEY:-$SSL_DIR/server.key}"
|
#SSL_KEY="${SSL_KEY:-$SSL_DIR/server.key}"
|
||||||
SSL_CERT="${SSL_CERT:-$SSL_DIR/server.crt}"
|
#SSL_CERT="${SSL_CERT:-$SSL_DIR/server.crt}"
|
||||||
SSL_CONTAINER_DIR="${SSL_CONTAINER_DIR:-/etc/ssl/CA}"
|
#SSL_CONTAINER_DIR="${SSL_CONTAINER_DIR:-/etc/ssl/CA}"
|
||||||
COUNTRY="${COUNTRY:-US}"
|
#COUNTRY="${COUNTRY:-US}"
|
||||||
STATE="${STATE:-NY}"
|
#STATE="${STATE:-NY}"
|
||||||
CITY="${CITY:-Albany}"
|
#CITY="${CITY:-Albany}"
|
||||||
UNIT="${UNIT:-CasjaysDev}"
|
#UNIT="${UNIT:-CasjaysDev}"
|
||||||
ORG="${ORG:-"Casjays Developments"}"
|
#ORG="${ORG:-"Casjays Developments"}"
|
||||||
DAYS_VALID="${DAYS_VALID:-3650}"
|
#DAYS_VALID="${DAYS_VALID:-3650}"
|
||||||
RSA="${RSA:-4096}"
|
#RSA="${RSA:-4096}"
|
||||||
CN="${CN:-$FULL_DOMAIN_NAME}"
|
#CN="${CN:-$FULL_DOMAIN_NAME}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# web server configs
|
# web server configs
|
||||||
HTTPD_CONFIG_FILE="${HTTPD_CONFIG_FILE:-$(__find_httpd_conf)}"
|
HTTPD_CONFIG_FILE="${HTTPD_CONFIG_FILE:-$(__find_httpd_conf)}"
|
||||||
@ -80,7 +80,7 @@ LIGHTTPD_CONFIG_FILE="${LIGHTTPD_CONFIG_FILE:-$(__find_lighttpd_conf)}"
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# postgresql env
|
# postgresql env
|
||||||
DATABASE_DIR_PGSQL="${DATABASE_DIR_PGSQL:-$PGDATA}"
|
DATABASE_DIR_PGSQL="${DATABASE_DIR_PGSQL:-$PGDATA}"
|
||||||
PGDATA="${DATABASE_DIR_PGSQL:-$DATABASE_BASE_DIR/pgsql}"
|
PGDATA="${DATABASE_DIR_PGSQL:-$DATABASE_BASE_DIR/postgres}"
|
||||||
POSTGRES_USER="${DATABASE_USER_ROOT:-$POSTGRES_USER}"
|
POSTGRES_USER="${DATABASE_USER_ROOT:-$POSTGRES_USER}"
|
||||||
POSTGRES_PASSWORD="${DATABASE_PASS_ROOT:-$POSTGRES_PASSWORD}"
|
POSTGRES_PASSWORD="${DATABASE_PASS_ROOT:-$POSTGRES_PASSWORD}"
|
||||||
POSTGRES_CONFIG_FILE="${POSTGRES_CONFIG_FILE:-$(__find_pgsql_conf)}"
|
POSTGRES_CONFIG_FILE="${POSTGRES_CONFIG_FILE:-$(__find_pgsql_conf)}"
|
||||||
@ -99,7 +99,7 @@ MARIADB_RANDOM_ROOT_PASSWORD="${MARIADB_RANDOM_ROOT_PASSWORD:-}"
|
|||||||
MARIADB_CONFIG_FILE="${MARIADB_CONFIG_FILE:-$(__find_mysql_conf)}"
|
MARIADB_CONFIG_FILE="${MARIADB_CONFIG_FILE:-$(__find_mysql_conf)}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# mongodb env
|
# mongodb env
|
||||||
NITDB_ROOT_USERNAME="${DATABASE_USER_ROOT:-$NITDB_ROOT_USERNAME}"
|
INITDB_ROOT_USERNAME="${DATABASE_USER_ROOT:-$INITDB_ROOT_USERNAME}"
|
||||||
DATABASE_DIR_MONGODB="${DATABASE_DIR_MONGODB:-$DATABASE_BASE_DIR/mongodb}"
|
DATABASE_DIR_MONGODB="${DATABASE_DIR_MONGODB:-$DATABASE_BASE_DIR/mongodb}"
|
||||||
MONGO_INITDB_ROOT_PASSWORD="${DATABASE_PASS_ROOT:-$MONGO_INITDB_ROOT_PASSWORD}"
|
MONGO_INITDB_ROOT_PASSWORD="${DATABASE_PASS_ROOT:-$MONGO_INITDB_ROOT_PASSWORD}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@ -112,6 +112,9 @@ DATABASE_DIR_COUCHDB="${DATABASE_DIR_COUCHDB:-$DATABASE_BASE_DIR/couchdb}"
|
|||||||
# Supabase
|
# Supabase
|
||||||
DATABASE_DIR_SUPABASE="${DATABASE_DIR_SUPABASE:-$DATABASE_BASE_DIR/supabase}"
|
DATABASE_DIR_SUPABASE="${DATABASE_DIR_SUPABASE:-$DATABASE_BASE_DIR/supabase}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# docker env
|
||||||
|
DOCKER_HOST="unix:///run/docker.sock"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# File locations
|
# File locations
|
||||||
ENTRYPOINT_PID_FILE="${ENTRYPOINT_PID_FILE:-/run/init.d/entrypoint.pid}"
|
ENTRYPOINT_PID_FILE="${ENTRYPOINT_PID_FILE:-/run/init.d/entrypoint.pid}"
|
||||||
ENTRYPOINT_INIT_FILE="${ENTRYPOINT_INIT_FILE:-/config/.entrypoint.done}"
|
ENTRYPOINT_INIT_FILE="${ENTRYPOINT_INIT_FILE:-/config/.entrypoint.done}"
|
||||||
@ -126,4 +129,7 @@ ENTRYPOINT_FIRST_RUN="${ENTRYPOINT_FIRST_RUN:-yes}"
|
|||||||
DATA_DIR_INITIALIZED="${DATA_DIR_INITIALIZED:-false}"
|
DATA_DIR_INITIALIZED="${DATA_DIR_INITIALIZED:-false}"
|
||||||
CONFIG_DIR_INITIALIZED="${CONFIG_DIR_INITIALIZED:-false}"
|
CONFIG_DIR_INITIALIZED="${CONFIG_DIR_INITIALIZED:-false}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
if [ -f "$ENTRYPOINT_PID_FILE" ] || [ -f "$ENTRYPOINT_INIT_FILE" ]; then
|
||||||
|
START_SERVICES="no" ENTRYPOINT_MESSAGE="no" ENTRYPOINT_FIRST_RUN="no"
|
||||||
|
fi
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
10
rootfs/usr/local/share/template-files/config/env/examples/00-directory.sh
vendored
Normal file
10
rootfs/usr/local/share/template-files/config/env/examples/00-directory.sh
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# directory settings
|
||||||
|
WWW_ROOT_DIR="${ENV_WWW_ROOT_DIR:-${WWW_ROOT_DIR}}"
|
||||||
|
BACKUP_DIR="${ENV_BACKUP_DIR:-${BACKUP_DIR:-/data/backups}}"
|
||||||
|
LOCAL_BIN_DIR="${ENV_LOCAL_BIN_DIR:-${LOCAL_BIN_DIR:-/usr/local/bin}}"
|
||||||
|
DATABASE_BASE_DIR="${ENV_DATABASE_BASE_DIR:-${DATABASE_BASE_DIR:-/data/db}}"
|
||||||
|
DEFAULT_DATA_DIR="${ENV_DEFAULT_DATA_DIR:-${DEFAULT_DATA_DIR:-/usr/local/share/template-files/data}}"
|
||||||
|
DEFAULT_CONF_DIR="${ENV_DEFAULT_CONF_DIR:-${DEFAULT_CONF_DIR:-/usr/local/share/template-files/config}}"
|
||||||
|
DEFAULT_TEMPLATE_DIR="${ENV_DEFAULT_TEMPLATE_DIR:-${EDEFAULT_TEMPLATE_DIR:-/usr/local/share/template-files/defaults}}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
6
rootfs/usr/local/share/template-files/config/env/examples/certbot.sh
vendored
Normal file
6
rootfs/usr/local/share/template-files/config/env/examples/certbot.sh
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# cerbot
|
||||||
|
CERT_BOT_MAIL="${ENV_CERT_BOT_MAIL:-$CERT_BOT_MAIL}"
|
||||||
|
CERTBOT_DOMAINS="${ENV_CERTBOT_DOMAINS:-$CERTBOT_DOMAINS}"
|
||||||
|
CERT_BOT_ENABLED="${ENV_CERT_BOT_ENABLED:-${CERT_BOT_ENABLED:-false}}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
7
rootfs/usr/local/share/template-files/config/env/examples/couchdb.sh
vendored
Normal file
7
rootfs/usr/local/share/template-files/config/env/examples/couchdb.sh
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# couchdb env
|
||||||
|
COUCHDB_NODENAME="${ENV_COUCHDB_NODENAME:-${COUCHDB_NODENAME:-$NODENAME}}"
|
||||||
|
COUCHDB_USER="${ENV_COUCHDB_USER:-${COUCHDB_USER:-$DATABASE_USER_ROOT}}"
|
||||||
|
COUCHDB_PASSWORD="${ENV_COUCHDB_PASSWORD:-${COUCHDB_PASSWORD:-$DATABASE_PASS_ROOT}}"
|
||||||
|
DATABASE_DIR_COUCHDB="${ENV_DATABASE_DIR_COUCHDB:-${DATABASE_DIR_COUCHDB:-/data/db/couchdb}}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
@ -1,6 +1,4 @@
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# cerbot
|
# docker env
|
||||||
SSL_CERT_BOT="${SSL_CERT_BOT:-false}"
|
DOCKER_HOST="${DOCKER_HOST:-unix://var/run/docker.sock}"
|
||||||
CERT_BOT_MAIL="${CERT_BOT_MAIL:-}"
|
|
||||||
CERTBOT_DOMAINS="${CERTBOT_DOMAINS:-}"
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
@ -3,6 +3,11 @@
|
|||||||
USER="${USER:-root}"
|
USER="${USER:-root}"
|
||||||
LANG="${LANG:-C.UTF-8}"
|
LANG="${LANG:-C.UTF-8}"
|
||||||
TZ="${TZ:-America/New_York}"
|
TZ="${TZ:-America/New_York}"
|
||||||
SERVICE_USER="${SERVICE_USER:-root}"
|
|
||||||
ENV_PORTS="${ENV_PORTS//\/*/}"
|
ENV_PORTS="${ENV_PORTS//\/*/}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# How to set permissions
|
||||||
|
SERVICE_USER="${SERVICE_USER:-}"
|
||||||
|
SERVICE_GROUP="${SERVICE_GROUP:-}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
SERVICE_UID="${SERVICE_UID:-}" # set the user id
|
||||||
|
SERVICE_GID="${SERVICE_GID:-}" # set the group id
|
@ -2,11 +2,11 @@
|
|||||||
# mariadb env
|
# mariadb env
|
||||||
MARIADB_ROOT_HOST="${MARIADB_ROOT_HOST:-%}"
|
MARIADB_ROOT_HOST="${MARIADB_ROOT_HOST:-%}"
|
||||||
MARIADB_AUTO_UPGRADE="${MARIADB_AUTO_UPGRADE:-yes}"
|
MARIADB_AUTO_UPGRADE="${MARIADB_AUTO_UPGRADE:-yes}"
|
||||||
MARIADB_DATABASE="${DATABASE_CREATE:-$MARIADB_DATABASE}"
|
MARIADB_DATABASE="${MARIADB_DATABASE:-$DATABASE_CREATE}"
|
||||||
MARIADB_USER="${DATABASE_USER_NORMAL:-$MARIADB_USER}"
|
MARIADB_USER="${MARIADB_USER:-$DATABASE_USER_NORMAL}"
|
||||||
MARIADB_PASSWORD="${DATABASE_PASS_NORMAL:-$MARIADB_PASSWORD}"
|
MARIADB_PASSWORD="${MARIADB_PASSWORD:-$DATABASE_PASS_NORMAL}"
|
||||||
DATABASE_DIR_MARIADB="${DATABASE_DIR_MARIADB:-/data/db/mysql}"
|
DATABASE_DIR_MARIADB="${DATABASE_DIR_MARIADB:-/data/db/mariadb}"
|
||||||
MARIADB_ROOT_PASSWORD="${DATABASE_PASS_ROOT:-$MARIADB_ROOT_PASSWORD}"
|
MARIADB_ROOT_PASSWORD="${MARIADB_ROOT_PASSWORD:-$DATABASE_PASS_ROOT}"
|
||||||
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD="${MARIADB_ALLOW_EMPTY_ROOT_PASSWORD:-}"
|
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD="${MARIADB_ALLOW_EMPTY_ROOT_PASSWORD:-}"
|
||||||
MARIADB_INITDB_SKIP_TZINFO="${MARIADB_INITDB_SKIP_TZINFO}:-"
|
MARIADB_INITDB_SKIP_TZINFO="${MARIADB_INITDB_SKIP_TZINFO}:-"
|
||||||
MARIADB_RANDOM_ROOT_PASSWORD="${MARIADB_RANDOM_ROOT_PASSWORD:-}"
|
MARIADB_RANDOM_ROOT_PASSWORD="${MARIADB_RANDOM_ROOT_PASSWORD:-}"
|
@ -5,5 +5,5 @@ EMAIL_RELAY="${EMAIL_RELAY:-}"
|
|||||||
HOSTNAME="${HOSTNAME:-casjaysdev-GEN_SCRIPT_REPLACE_APPNAME}"
|
HOSTNAME="${HOSTNAME:-casjaysdev-GEN_SCRIPT_REPLACE_APPNAME}"
|
||||||
EMAIL_DOMAIN="${EMAIL_DOMAIN:-${DOMAINNAME:-$HOSTNAME}}"
|
EMAIL_DOMAIN="${EMAIL_DOMAIN:-${DOMAINNAME:-$HOSTNAME}}"
|
||||||
FULL_DOMAIN_NAME="${FULL_DOMAIN_NAME:-${DOMAINNAME:-$HOSTNAME}}"
|
FULL_DOMAIN_NAME="${FULL_DOMAIN_NAME:-${DOMAINNAME:-$HOSTNAME}}"
|
||||||
SERVER_ADMIN="${SERVER_ADMIN:-root@${EMAIL_DOMAIN:-$DOMAINNAME}}"
|
SERVER_ADMIN="${SERVER_ADMIN:-root@${EMAIL_DOMAIN:-$FULL_DOMAIN_NAME}}"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
@ -1,7 +1,7 @@
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# postgresql env
|
# postgresql env
|
||||||
PGDATA="${DATABASE_DIR_PGSQL:-/dat/db/pgsql}"
|
PGDATA="${DATABASE_DIR_PGSQL:-$PGDATA}"
|
||||||
DATABASE_DIR_PGSQL="${DATABASE_DIR_PGSQL:-$PGDATA}"
|
DATABASE_DIR_PGSQL="${DATABASE_DIR_PGSQL:-/data/db/postgres}"
|
||||||
POSTGRES_USER="${DATABASE_USER_ROOT:-$POSTGRES_USER}"
|
POSTGRES_USER="${DATABASE_USER_ROOT:-$POSTGRES_USER}"
|
||||||
POSTGRES_PASSWORD="${DATABASE_PASS_ROOT:-$POSTGRES_PASSWORD}"
|
POSTGRES_PASSWORD="${DATABASE_PASS_ROOT:-$POSTGRES_PASSWORD}"
|
||||||
POSTGRES_CONFIG_FILE="${POSTGRES_CONFIG_FILE:-$(__find_pgsql_conf)}"
|
POSTGRES_CONFIG_FILE="${POSTGRES_CONFIG_FILE:-$(__find_pgsql_conf)}"
|
Loading…
x
Reference in New Issue
Block a user