Compare commits

..

33 Commits

Author SHA1 Message Date
ed147ece9e
Update OctoJoom version and improve password validation #10
The OctoJoom version was updated to 3.6.2. Changes were also made to the password validation process to increase the minimum required length of the password from 4 to 11 characters for the correct error message.
2024-06-01 15:23:19 +02:00
8cf856b35e
Set LC_ALL to C in octojoom script #10
This commit sets the enviroment variable LC_ALL to 'C' in the octojoom script. This ensures the use of ASCII character set and standardizes behavior across different environments for consistency.
2024-06-01 15:17:05 +02:00
1a83002c9d
Add automatic whiptail installation and error notices for missing software dependencies #8
This commit modifies the script to automatically install 'whiptail' on Linux, macOS, and Windows if it's not already installed. It also adds error notices instructing the user to install other software dependencies if they're missing. This makes the script more user-friendly and reduces the likelihood of script failure due to missing dependencies.
2024-06-01 15:15:42 +02:00
e627e7f4cd
Remove Docker Compose version from YML files and set networks to external
The Docker Compose version definition was removed from traefikContainer, portainerContainer, and opensshContainer functions. The "external" attribute was also added to "traefik" and "openssh" networks. These changes aim to improve the versatility and compatibility of network settings and remove unnecessary version constraints.
2024-06-01 15:11:16 +02:00
eaa5b217c8
Update shebang for shell compatibility #6
Changed the shebang in the octojoom script. This change improves portability by allowing the script to run in environments where /bin/bash may not be available.
2024-06-01 15:08:38 +02:00
b7973a0011
We want the function to be called function. 2024-05-27 10:03:36 +02:00
0d2649601a
Add better host management for OSs 2024-05-27 09:58:41 +02:00
9566019630
Add MACOS and WIN compatibility. 2024-05-27 09:36:24 +02:00
2ca0fc61ce
Add reset volume feature to Joomla 2024-05-14 09:41:39 +02:00
69f00e830e
Add option to install Joomla extensions via env value. 2024-05-10 20:21:41 +02:00
42c85ba582
Add bash logo, written by, linted by to README. 2024-03-20 16:33:22 +02:00
67d808b40a
Fix typo on VDM_max_input_vars. 2024-03-08 13:30:59 +02:00
0b01021137
Add max_input_vars to the php settings 2024-03-08 13:26:52 +02:00
81af237052
remove underscore from container names. 2024-02-22 14:32:09 +02:00
fad4a7cf6e
Removed the " from around the name and site name in autodeploy. 2024-02-19 19:53:03 +02:00
7aa661aea4
Set default Joomla to 5.0 2024-01-29 07:58:25 +02:00
f6d35ae9f7
Adds --remove-orphans flag to down command, incase the yaml file changed 2023-09-13 14:38:02 +02:00
4092c4beb5
adds cloudflare secure switch. 2023-08-25 10:58:59 +02:00
af87697943
Adds bulk deploy. Adds auto deploy options. 2023-08-24 19:56:02 +02:00
99d95c4d84
Adds option to migrate containers, and folders to remote hosts. 2023-05-05 18:59:10 +02:00
603804af74
Fix traefik acme.json creation error. 2023-03-14 15:45:09 +02:00
ea1ff59177
Adds installation options for Docker and Docker-Compose. Fix network warning issue. 2023-02-22 13:47:32 +02:00
5255b7bb25
Expert mode required to set user:group ID. 2022-01-27 16:45:36 +02:00
fedcfc7c4f
Updates the showProgress notice commands. 2022-01-03 14:24:53 +02:00
76db2f477b
Makes the docker network values changeable. 2021-12-31 12:31:54 +02:00
2918326c8c
Adds set network to first run. 2021-12-31 12:11:11 +02:00
6a27e23f02
Adds the subnets to the networks setup for docker. 2021-12-31 12:04:00 +02:00
e55f4a31bc
Adds setImageSource function for better image source selection options. Improves the persistence volumes implementation for Joomla containers. Improves the progress bar area to work more accurately. Adds expert option to tweak the PHP settings of a container. Adds option to customize the entrypoint.sh of your container. 2021-12-30 22:17:11 +02:00
9535c3b74d
Adds Expert mode. Improves the menu flow. Adds none persistence volume option in expert mode. Improves the directory fix with progress bar. Adds easy fist run path. 2021-12-28 12:53:42 +02:00
a1f7c8fa39
Adds option to set container user ID when needed in both Joomla and Openssh containers. 2021-12-26 16:27:10 +02:00
e4a4714b0a
Adds the option to select the octoleo images. 2021-12-24 09:54:59 +02:00
66d20ef68d
added ubuntu only notice to readme 2021-07-21 21:34:01 +02:00
0dafdf00e1
changed the name to octojoom for better adoption 2021-07-21 21:21:21 +02:00
2 changed files with 2846 additions and 473 deletions

View File

@ -1,4 +1,9 @@
# Easy Docker Deployment (UBUNTU ONLY)
<h2><img align="middle" src="https://raw.githubusercontent.com/odb/official-bash-logo/master/assets/Logos/Icons/PNG/64x64.png" >
Octojoom - Easy Joomla! Docker Deployment
</h2>
Written by Llewellyn van der Merwe (@llewellynvdm)
With this script we can easily deploy docker containers of Joomla and Openssh. This combination of these tools give rise to a powerful and very secure shared development environment.
This program has **command input** options as seen in the menus below, but these command are _not the only way_ to set these values.
@ -8,40 +13,36 @@ There are more than one .env file and the script will set those up for you whene
the script will check if those values exist, and if they don't it will ask for them, and store them automatically for future use.
That same time the output message to the terminal will show you where the specific .env file can be found.
Linted by [#ShellCheck](https://github.com/koalaman/shellcheck)
> program only for ubuntu/debian systems at this time (should you like to use it on other OS's please open and issue...)
---
# Install
```shell
$ sudo curl -L "https://git.vdm.dev/api/v1/repos/octoleo/docker-deploy/raw/src/docker-deploy?access_token=xxxx" -o /usr/local/bin/docker-deploy
$ sudo chmod +x /usr/local/bin/docker-deploy
$ sudo curl -L "https://git.vdm.dev/api/v1/repos/octoleo/octojoom/raw/src/octojoom" -o /usr/local/bin/octojoom
$ sudo chmod +x /usr/local/bin/octojoom
```
### How to get the Access Token
Sign in to [https://git.vdm.dev/](https://git.vdm.dev/user/login) with your **GitHub** or **Gitlab** account.
Then open your [applications settings](https://git.vdm.dev/user/settings/applications) and create a new access token.
![image](https://user-images.githubusercontent.com/5607939/143513412-946843be-acd8-4973-be44-00902226f6ba.png)
The first time you use the program, it will ask for the access token again, so it can do updates in the future.
---
# Usage
> To see the usage help menu
```shell
$ docker-deploy -h
$ octojoom -h
```
### Help Menu (docker-deploy)
### Help Menu (octojoom)
```txt
Usage: docker-deploy [OPTION...]
Usage: octojoom [OPTION...]
Options
======================================================
--type <type>
set type you would like to work with
example: docker-deploy --type joomla
example: octojoom --type joomla
======================================================
--task <task>
set type of task you would like to perform
example: docker-deploy --task setup
example: octojoom --task setup
======================================================
--container <container.domain.name>
Directly enabling or disabling a container with
@ -49,74 +50,74 @@ Usage: docker-deploy [OPTION...]
The container must exist, which means it was
setup previously
Used without type and task Joomla-Enable is (default)
example: docker-deploy --container "io.vdm.dev"
example: octojoom --container "io.vdm.dev"
======================================================
--update
to update your install
example: docker-deploy --update
example: octojoom --update
======================================================
--access-token <token>
to update the program you will need an access token
from https://git.vdm.dev/user/settings/applications
example: docker-deploy --access-token xxxxxxxxxxx
example: octojoom --access-token xxxxxxxxxxx
======================================================
--uninstall
to uninstall this script
example: docker-deploy --uninstall
example: octojoom --uninstall
======================================================
AVAILABLE FOR TO ANY CONTAINER
======================================================
-k|--key <key>
set key for the docker compose container naming
!! no spaces allowed in the key !!
example: docker-deploy -k="vdm"
example: docker-deploy --key="vdm"
example: octojoom -k="vdm"
example: octojoom --key="vdm"
======================================================
-e|--env-key <key>
set key for the environment variable naming
!! no spaces allowed in the key & must be UPPERCASE !!
example: docker-deploy -e="VDM"
example: docker-deploy --env-key="VDM"
example: octojoom -e="VDM"
example: octojoom --env-key="VDM"
======================================================
-d|--domain <domain.com>
set key website domain
!! must be domain.tld !!
example: docker-deploy -d="joomla.org"
example: docker-deploy --domain="joomla.org"
example: octojoom -d="joomla.org"
example: octojoom --domain="joomla.org"
======================================================
-s|--sub-domain <domain.com>
set key website sub domain
!! no spaces allowed in the sub domain !!
example: docker-deploy -s="jcb"
example: docker-deploy --sub-domain="jcb"
example: octojoom -s="jcb"
example: octojoom --sub-domain="jcb"
======================================================
AVAILABLE FOR JOOMLA CONTAINER
======================================================
-j|--joomla-version <version-tag>
see available tags here https://hub.docker.com/_/joomla
example: docker-deploy -j=3.10
example: docker-deploy --joomla-version=3.10
example: octojoom -j=5.0
example: octojoom --joomla-version=5.0
======================================================
AVAILABLE FOR OPENSSH CONTAINER
======================================================
-u|--username <username>
set username of the container
example: docker-deploy -u="ubuntu"
example: docker-deploy --username="ubuntu"
example: octojoom -u="ubuntu"
example: octojoom --username="ubuntu"
======================================================
--uid <id>
set container user id
example: docker-deploy --uid=1000
example: octojoom --uid=1000
======================================================
--gid <id>
set container user group id
example: docker-deploy --gid=1000
example: octojoom --gid=1000
======================================================
-p|--port <port>
set ssh port to use
!! do not use 22 !!
example: docker-deploy -p=2239
example: docker-deploy --port=2239
example: octojoom -p=2239
example: octojoom --port=2239
======================================================
--ssh-dir <dir>
set ssh directory name found in the .ssh dir
@ -124,34 +125,34 @@ Usage: docker-deploy [OPTION...]
This directory has separate files for
each public key allowed to access
the container
example: docker-deploy --ssh-dir="teamname"
example: octojoom --ssh-dir="teamname"
======================================================
--sudo
switch to add the container user to the
sudo group of the container
example: docker-deploy --sudo
example: octojoom --sudo
======================================================
-t|--time-zone <time/zone>
set time zone of the container
!! must valid time zone !!
example: docker-deploy -t="Africa/Windhoek"
example: docker-deploy --time-zone="Africa/Windhoek"
example: octojoom -t="Africa/Windhoek"
example: octojoom --time-zone="Africa/Windhoek"
======================================================
HELP ʕ•ᴥ•ʔ
======================================================
-h|--help
display this help menu
example: docker-deploy -h
example: docker-deploy --help
example: octojoom -h
example: octojoom --help
======================================================
Docker Deployment v2.1.0
Octojoom
======================================================
```
---
# Uninstall
```shell
$ docker-deploy --uninstall
$ octojoom --uninstall
```
---
# Free Software License

File diff suppressed because it is too large Load Diff