Skip to content

About

Dienstplan Portal für ehrenamtliche

Topics

Resources

Stars

16 stars

Watchers

7 watching

Forks

Latest commit

 

History

514 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Actions Status

DienstplanDLRG

This Project is a Laravel based web application to manage volunteer services at the German Life Saving Society (DLRG) of Stuttgart. A production version could be found here https://dlrgdienstplan.de. If you want to register a new Client (Gliederung), just contact me.

Demo

A Demo Application is provided here: https://demo.dlrgdienstplan.de.

Login as a Admin with

user: user.demodienstplan@philhil.de password: user

or as a User with

user: admin.demodienstplan@philhil.de password: admin

Issues & Feature requests

Before opening an issue, make sure to check whether any existing issues (open or closed) match. If you're suggesting a new feature, text me first or talk direktly to me.

Use a release!

Please refrain from using the master branch for anything else but development purposes! Use the most recent release instead. You can list all releases by running git tag and switch to one by running git checkout *name*.

Upgrade

If you run a old version follow the upgrade Guide: https://github.com/Philhil/DienstplanDLRG/wiki#upgrade-guide

Development Setup with Docker

Use Docker Compose for a local development environment with app, MariaDB, and Redis.

Requirements

  • Docker Desktop (or Docker Engine + Compose plugin)
  • A free local port 80 for the app and 3306 for MariaDB (or adjust in docker-compose.yaml)

Start the development stack

docker compose build --no-cache dienstplan
docker compose up -d

Open the app at http://localhost.

Useful commands

docker compose logs -f dienstplan
docker compose exec dienstplan php artisan migrate
docker compose down

Corporate proxy / TLS interception (Composer curl error 60)

If build fails with an SSL certificate error while Composer downloads packages from GitHub, your network likely uses a company proxy with TLS interception.

  1. Export your company root certificate (for example to C:\cert\mycert.crt).
  2. In the same Windows PowerShell shell where you run Docker, set proxy and certificate variables:
$env:HTTPS_PROXY = "http://proxy.company.local:8080"
$env:CUSTOM_CA_CERT_B64 = [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\cert\mycert.crt"))
  1. Rebuild the image from that same shell:
docker compose build --no-cache --progress=plain dienstplan

Important: variables must be set in the same shell session as docker compose build. If not, Compose resolves CUSTOM_CA_CERT_B64 as empty and the certificate is not imported.

The Dockerfile imports this certificate into the container trust store before running Composer.

Setup on Debian based Linux (Server).

People with other Distros like me with Gentoo should know what to do

  • apt-get install mariadb-server nginx php phpunit php-mysql php-mbstring php-zip php-mcrypt supervisor

  • Clone this Project in your web dir like /var/www/

  • File Permissons:

  sudo chown -R www-data:www-data /path/to/your/root/directory
  sudo find /path/to/your/root/directory -type f -exec chmod 644 {} \;  
  sudo find /path/to/your/root/directory -type d -exec chmod 755 {} \;

If you run this in production please make sure to use TLS ( LetsEncrypt for Ubuntu Fanboys )

Mysql (mariadb) and Laravel

mysql_secure_installation

mysql -u root -p

CREATE DATABASE IF NOT EXISTS dlrgdienstplan;
CREATE USER 'dlrgdienstplan'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON dlrgdienstplan.* To 'dlrgdienstplan'@'localhost';

.env File

cp .env.example .env

Set the parameters in .env

DB_HOST=localhost
DB_DATABASE=dlrgdienstplan
DB_USERNAME=dlrgdienstplan
DB_PASSWORD=password

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=465
MAIL_USERNAME=mailuser
MAIL_PASSWORD=pass
MAIL_ENCRYPTION=tls

FACEBOOK_CLIENTID = 000
FACEBOOK_CLIENTSECRET = 000

Setup Laravel Environment

php composer.phar install

php artisan key:generate

php artisan migrate

Create Superadmin

php artisan tinker

$client = \App\Client::create(['name' => "InstanceName",'seasonStart' => "2000-01-01", 'isMailinglistCommunication' => false, 'weeklyServiceviewEmail' => false, 'mailinglistAddress' => null, 'mailSenderName' => "Dienstplan", 'mailReplyAddress' => "dienstplan@yourdomain.de", 'module_training' => true, 'module_training_credit' => false, 'module_statistic' => true, 'module_survey' => true]);
$user = \App\User::create(['name' => 'LastName','first_name' => 'FirstName','email' => 'email@domain.de', 'password' => Hash::make('test'), 'role' => 'admin', 'approved' => '1', 'currentclient_id' => $client->id]);
\App\Client_user::create(['client_id' => $client->id, 'user_id' => $user->id, 'isAdmin' => 1,'isTrainingEditor' => 1]);

Cron and Autostart

crontab -e and paste:

* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1

Supervisor: create /etc/supervisor/conf.d/laravel-worker.conf

		
 [program:laravel-worker]		
 process_name=%(program_name)s_%(process_num)02d		
 command=php /var/www/DienstplanDLRG/artisan queue:work --tries=3		
 autostart=true		
 autorestart=true		
 numprocs=1		
 redirect_stderr=true		
 stdout_logfile=/var/log/supervisor/laravel-worker.log		
 

About

Dienstplan Portal für ehrenamtliche

Topics

Resources

Stars

16 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages