updated documenation, fixed install script
This commit is contained in:
parent
815a551a07
commit
05f289eae0
78
README.md
78
README.md
@ -1,78 +1,8 @@
|
||||
# Joomla
|
||||
|
||||
Joomla CMS.
|
||||
This repository hold all the information Nick has documented about Joomla.
|
||||
There are also helper files and scripts here.
|
||||
|
||||
Make sure the projectName is set correctly, it's very important, because it's used for git, docker, mysql and joomla.
|
||||
* [Gitea Repo](https://git.nickyeoman.com/nick/joomla/)
|
||||
* [Wiki](https://git.nickyeoman.com/nick/joomla/wiki)
|
||||
|
||||
## Quick Installation
|
||||
|
||||
```bash
|
||||
# STEP 1
|
||||
# Clone the repo (change projectName to the name of your project)
|
||||
git clone git@git.nickyeoman.com:nick/joomla.git projectName
|
||||
|
||||
# STEP 2
|
||||
# Move into the dir
|
||||
cd projectName
|
||||
|
||||
# STEP 3
|
||||
# Setup your env file
|
||||
mv env.sample .env
|
||||
vi .env
|
||||
|
||||
# STEP 4
|
||||
# Prepare your project for git
|
||||
bash bin/new_project.sh
|
||||
|
||||
# STEP 5
|
||||
# Run the containers to initialize
|
||||
sudo bash bin/docker_up.sh
|
||||
|
||||
# STEP 6
|
||||
# Joomla cli installer
|
||||
sudo bash bin/setup_joomla_installer.sh
|
||||
|
||||
# STEP 7
|
||||
# Manually set Site Meta Description in [Administrator](http://localhost:8000/administrator/index.php?option=com_config)
|
||||
|
||||
# Step 8
|
||||
# Clean up and Config
|
||||
sudo bash bin/finalize.sh
|
||||
|
||||
```
|
||||
|
||||
## Development Environment
|
||||
|
||||
Let's update our bash_profile with some alias:
|
||||
```bash
|
||||
alias joomla='docker-compose exec -u www-data joomla php cli/joomla.php'
|
||||
```
|
||||
Allowing you to just run commands like this:
|
||||
```bash
|
||||
joomla core:check-updates
|
||||
joomla site:down
|
||||
joomla extension:list
|
||||
joomla update:extensions:check
|
||||
joomla cache:clean
|
||||
|
||||
```
|
||||
|
||||
## Create A Component
|
||||
|
||||
1. Move to the directory where you would like to keep the component. ```cd ~/joomla-components/```
|
||||
1. Run component creator from your Joomla install. ```bash ~/projects/joomla/projectName/bin/create_component.sh```
|
||||
1. Optionally save to git repo.
|
||||
1. build the zip file by running bin/build_component.sh
|
||||
|
||||
## References
|
||||
|
||||
* [Joomla Twig](https://phproberto.github.io/joomla-twig/)
|
||||
|
||||
### Component
|
||||
|
||||
* https://github.com/ceford/j4xdemos-com-mywalks/tree/master
|
||||
* https://www.abdulwaheed.pk/en/blog/41-information-technology/44-joomla/302-how-to-create-joomla-4-component.html
|
||||
* Can't get this one working either: https://www.techfry.com/resources/how-to-create-joomla-component
|
||||
* https://docs.joomla.org/J4.x:Developing_an_MVC_Component/Introduction
|
||||
* Can't get this one working [Develop a component](https://docs.joomla.org/J4.x:Developing_an_MVC_Component/Developing_a_Basic_Component)
|
||||
* [Minimal component](https://joomla.stackexchange.com/questions/22176/minimal-basic-structure-for-a-frontend-joomla-component-without-using-joomla-mvc)
|
@ -1,6 +1,5 @@
|
||||
#!/bin/bash
|
||||
###################################################################################################
|
||||
#
|
||||
# INSTRUCTIONS
|
||||
# Move to the directory of the component
|
||||
# Run this script with component name (com_name)
|
@ -6,22 +6,82 @@ if [ "$EUID" -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
##################################################################
|
||||
# ENV file
|
||||
##################################################################
|
||||
# Verify the .env file exists
|
||||
if [ ! -f ".env" ]; then
|
||||
echo "Error: The .env file does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Load environment variables from .env file
|
||||
set -o allexport
|
||||
source .env
|
||||
set +o allexport
|
||||
|
||||
##################################################################
|
||||
# Variables
|
||||
##################################################################
|
||||
PROJECTNAME=$(basename "$(pwd)")
|
||||
|
||||
# Remove crap files
|
||||
# Joomla Configuration Defaults
|
||||
if [ -z "$JCONFIG_REPORTING" ]; then
|
||||
JCONFIG_REPORTING='none'
|
||||
fi
|
||||
if [ -z "$JCONFIG_TIMEZONE" ]; then
|
||||
JCONFIG_TIMEZONE='America/Vancouver'
|
||||
fi
|
||||
if [ -z "$JCONFIG_SEF" ]; then
|
||||
JCONFIG_SEF=true
|
||||
fi
|
||||
# SMTP ENV CHECK
|
||||
if [ -z "$SMTP_MAILER" ]; then
|
||||
SMTP_MAILER='/usr/sbin/sendmail'
|
||||
fi
|
||||
if [ -z "$SMTP_USER" ]; then
|
||||
SMTP_USER=null
|
||||
fi
|
||||
if [ -z "$SMTP_PASS" ]; then
|
||||
SMTP_PASS=null
|
||||
fi
|
||||
if [ -n "$SMTP_PASS" ]; then
|
||||
SMTP_AUTH=true
|
||||
else
|
||||
SMTP_AUTH=false
|
||||
fi
|
||||
if [ -z "$SMTP_HOST" ]; then
|
||||
SMTP_HOST='mailhog'
|
||||
fi
|
||||
if [ -z "$SMTP_SECURITY" ]; then
|
||||
SMTP_SECURITY='None'
|
||||
fi
|
||||
if [ -z "$SMTP_PORT" ]; then
|
||||
SMTP_PORT=1025
|
||||
fi
|
||||
|
||||
# Set configuration.php
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set error_reporting="${JCONFIG_REPORTING}"
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set offset="${JCONFIG_TIMEZONE}"
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set sef_rewrite="${JCONFIG_SEF}"
|
||||
#SMTP
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set sendmail="${SMTP_MAILER}"
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set smtpuser="${SMTP_USER}"
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set smtppass="${SMTP_PASS}"
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set smtpauth="${SMTP_AUTH}"
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set smtphost="${SMTP_HOST}"
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set smtpsecure="${SMTP_SECURITY}"
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set smtpport="${SMTP_PORT}"
|
||||
|
||||
# Remove uneeded Joomla files
|
||||
rm -f html/web.config.txt
|
||||
rm -f html/htaccess.txt
|
||||
rm -f html/LICENSE.txt
|
||||
rm -f html/README.txt
|
||||
|
||||
# Set configuration.php
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set error_reporting=none
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set offset=America/Vancouver
|
||||
docker-compose exec -u www-data joomla php cli/joomla.php config:set sef_rewrite=true
|
||||
|
||||
# remove unused files from install
|
||||
# Remove Install helper scripts
|
||||
rm -rf bin/inc_new_project
|
||||
rm -rf bin/new_project.sh
|
||||
rm -rf bin/setup_joomla_installer.sh
|
||||
|
||||
echo "Now check the results and commit them to Git"
|
||||
echo "Now check the results and commit them to Git"
|
||||
|
38
bin/gitea_secrets.sh
Normal file
38
bin/gitea_secrets.sh
Normal file
@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Load environment variables from .env file
|
||||
if [ -f ".env" ]; then
|
||||
set -o allexport
|
||||
source .env
|
||||
set +o allexport
|
||||
else
|
||||
echo "Error: The .env file does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
USERNAME=""
|
||||
PASSWORD=""
|
||||
|
||||
read -p "Enter your Gitea username: " USERNAME
|
||||
read -s -p "Enter your Gitea password: " PASSWORD
|
||||
echo
|
||||
|
||||
secrets_response=$(curl -s -u "$USERNAME:$PASSWORD" "$GITEA_API/repos/$REPO_OWNER/$REPO_NAME/actions/secrets")
|
||||
status_code=$(tail -c 3 <<< "$secrets_response")
|
||||
|
||||
if [[ $status_code -eq 401 ]]; then
|
||||
echo "Authentication failed. Please check your username and password."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the secret keys
|
||||
secret_keys=$(echo "$secrets_response" | jq -r '.[].name')
|
||||
|
||||
# Loop through secret keys
|
||||
for secret_key in $secret_keys; do
|
||||
secret_response=$(curl -s -u "$USERNAME:$PASSWORD" "$GITEA_API/repos/$REPO_OWNER/$REPO_NAME/actions/secrets/$secret_key")
|
||||
secret_value=$(echo "$secret_response" | jq -r '.secret')
|
||||
|
||||
# Update .env file
|
||||
sed -i "s/$secret_key=.*/$secret_key=$secret_value/" .env
|
||||
done
|
@ -33,7 +33,7 @@ DB_PREFIX=$(LC_CTYPE=C tr -dc '[:alpha:]' < /dev/urandom | head -c 3)_
|
||||
docker-compose exec -u www-data joomla php installation/joomla.php install \
|
||||
--site-name=$PROJECTNAME \
|
||||
--admin-email=$EMAIL \
|
||||
--admin-user=$JOOMLA_USER \
|
||||
--admin-user="$JOOMLA_USER" \
|
||||
--admin-username=$JOOMLA_USERNAME \
|
||||
--admin-password=$JOOMLA_PASSWORD \
|
||||
--db-type=mysqli \
|
||||
|
9
development/README.md
Normal file
9
development/README.md
Normal file
@ -0,0 +1,9 @@
|
||||
# Development directory
|
||||
|
||||
This directory is accessable from the Joomla installation app.
|
||||
|
||||
it mounts as /development
|
||||
should be removed from your production
|
||||
includes git sub modules to other repositories
|
||||
|
||||
|
@ -20,6 +20,8 @@ services:
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||
volumes:
|
||||
- joomla-db:/var/lib/mysql
|
||||
- "/etc/timezone:/etc/timezone:ro"
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
|
||||
joomla:
|
||||
image: joomla:4.3.2 # https://hub.docker.com/_/joomla
|
||||
@ -31,7 +33,10 @@ services:
|
||||
JOOMLA_DB_NAME: ${MYSQL_DATABASE}
|
||||
volumes:
|
||||
- ./html:/var/www/html
|
||||
- ./development:/development
|
||||
- ./php/php.ini:/usr/local/etc/php/php.ini
|
||||
- "/etc/timezone:/etc/timezone:ro"
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
ports:
|
||||
- "8000:80"
|
||||
|
||||
@ -44,9 +49,15 @@ services:
|
||||
UPLOAD_LIMIT: '200M'
|
||||
ports:
|
||||
- "8001:80"
|
||||
|
||||
volumes:
|
||||
- "/etc/timezone:/etc/timezone:ro"
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
|
||||
mailhog:
|
||||
image: 'mailhog/mailhog:latest' # https://hub.docker.com/r/mailhog/mailhog
|
||||
ports:
|
||||
- "1025:1025"
|
||||
- "8002:8025"
|
||||
- "${SMTP_PORT}:1025"
|
||||
- "8002:8025"
|
||||
volumes:
|
||||
- "/etc/timezone:/etc/timezone:ro"
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
|
75
docs/CLI.md
75
docs/CLI.md
@ -1,75 +0,0 @@
|
||||
# CLI Cheatsheet
|
||||
|
||||
## Cache
|
||||
```
|
||||
cache:clean Clean expired cache entries
|
||||
```
|
||||
|
||||
## Config
|
||||
```
|
||||
config:get Display the current value of a configuration option
|
||||
config:set Set a value for a configuration option
|
||||
```
|
||||
|
||||
## Core
|
||||
```
|
||||
core:check-updates Check for Joomla updates
|
||||
core:update Update Joomla
|
||||
```
|
||||
|
||||
## Database
|
||||
```
|
||||
database:export database:export
|
||||
database:import Import the database
|
||||
```
|
||||
|
||||
## Extension
|
||||
```
|
||||
extension:discover Discover extensions
|
||||
extension:discover:install Install discovered extensions
|
||||
extension:discover:list List discovered extensions
|
||||
extension:install Install an extension from a URL or from a path
|
||||
extension:list List installed extensions
|
||||
extension:remove Remove an extension
|
||||
```
|
||||
|
||||
## Finder
|
||||
```
|
||||
finder:index Purges and rebuild the index
|
||||
Scheduler
|
||||
scheduler:list List all scheduled tasks
|
||||
scheduler:run Run one or more scheduled tasks
|
||||
scheduler:state Enable, disable or trash a scheduled task
|
||||
```
|
||||
|
||||
## Session
|
||||
```
|
||||
session:gc Perform session garbage collection
|
||||
session:metadata:gc Perform session metadata garbage collection
|
||||
```
|
||||
|
||||
## Site
|
||||
```
|
||||
site:down Put the site into offline mode
|
||||
site:up Put the site into online mode
|
||||
```
|
||||
|
||||
## Update
|
||||
```
|
||||
update:extensions:check Check for pending extension updates
|
||||
update:joomla:remove-old-files Remove old system files
|
||||
```
|
||||
|
||||
## User
|
||||
```
|
||||
user:add Add a user
|
||||
user:addtogroup Add a user to a group
|
||||
user:delete Delete a user
|
||||
user:list List all users
|
||||
user:removefromgroup Remove a user from a group
|
||||
user:reset-password Change a user's password
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
* [Joomla Magazine - Powerful cli](https://magazine.joomla.org/all-issues/june-2022/joomla-4-a-powerful-cli-application)
|
10
docs/FAQs.md
10
docs/FAQs.md
@ -1,10 +0,0 @@
|
||||
# Frequently Asked Questions
|
||||
|
||||
## How do I add user to Docker
|
||||
|
||||
Read more on [Docker's Official Post Instalation Docs](https://docs.docker.com/engine/install/linux-postinstall/)
|
||||
|
||||
```bash
|
||||
sudo usermod -aG docker $USER
|
||||
newgrp docker
|
||||
```
|
3
docs/README.md
Normal file
3
docs/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Joomla Repository Documenation
|
||||
|
||||
Nick's Joomla Repository Documenation is located in the Repo's wiki: https://git.nickyeoman.com/nick/joomla/wiki
|
11
env.sample
11
env.sample
@ -15,5 +15,12 @@ ACCESS_TOKEN=REPLACEME
|
||||
EMAIL=noreply@example.com
|
||||
JOOMLA_USER="John Doe"
|
||||
JOOMLA_USERNAME=admin
|
||||
# Passwords must be 12 characters long
|
||||
JOOMLA_PASSWORD=REPLACEME123
|
||||
# Passwords must be 12 characters long (admin-password)
|
||||
JOOMLA_PASSWORD=REPLACEME123
|
||||
|
||||
# SMTP
|
||||
SMTP_USER=null
|
||||
SMTP_PASS=null
|
||||
SMTP_HOST='mailhog'
|
||||
SMTP_SECURITY='None'
|
||||
SMTP_PORT=1025
|
Reference in New Issue
Block a user