Signal is a open source system status dashboard inspired by Cachet and others, built on Symfony and React.
- [Symfony 7.3] - PHP MVC Framework
- [Composer] - PHP Package Manager
- [Yarn] - JS Package Manager
- [React] - JS framework for responsive apps
The docs folder provides detailed guides for the many features of signal.
- Clone repository
$ cd /var/www
$ git clone git@github.com:dustinscarberry/signal.git- Install dependencies
$ cd signal
$ composer i --no-scripts
$ yarn install --immutable- Build dependencies
$ yarn dev- Create and configure .env.local at root of project directory
# required properties
APP_ENV=prod
APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DATABASE_URL=mysql://username:password@127.0.0.1:3306/databasename
MAILER_URL=emailConnectionString - https://symfony.com/doc/current/email.html#configuration- Run migrations (from server)
$ php bin/console doctrine:migrations:migrate- Load basic data
$ php bin/console doctrine:fixtures:load- Clone repository
$ cd /var/www
$ git clone git@github.com:dustinscarberry/signal.git- Install dependencies
$ cd signal
$ composer i --no-scripts --no-dev
$ yarn install --immutable- Build dependencies
$ yarn prod- Create and configure .env.local at root of project directory
# required properties
APP_ENV=prod
APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DATABASE_URL=mysql://username:password@127.0.0.1:3306/databasename
MAILER_URL=emailConnectionString - https://symfony.com/doc/current/email.html#configuration- Run migrations (from VM)
$ php bin/console doctrine:migrations:migrate- Load basic data
$ php bin/console doctrine:fixtures:load- Start server (nginx, if needed)
Nginx Basic Config
server {
listen 443 ssl http2;
ssl_certificate /etc/nginx/ssl/cert.cer;
ssl_certificate_key /etc/nginx/ssl/cert.key;
server_name __;
root /var/www/signal/public;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
location ~ \.php$ {
return 404;
}
}- Clone repository
$ cd /var/docker
$ git clone git@github.com:dustinscarberry/signal.git- Create and configure .env.local at root of project directory
# required properties
APP_ENV=prod
APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DATABASE_URL=mysql://username:password@127.0.0.1:3306/databasename
MAILER_URL=emailConnectionString - https://symfony.com/doc/current/email.html#configuration- Create docker-compose.override.yml and modify ports to your environment
$ cd signal
$ cp docker-compose.override.example.yml docker-compose.override.yml- Run docker container
$ docker compose up -d --build- Start server (nginx, if needed)
Nginx Basic Proxy Config
server {
listen 443 ssl http2;
ssl_certificate /etc/nginx/ssl/cert.cer;
ssl_certificate_key /etc/nginx/ssl/cert.key;
server_name __;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}- Get updates from repo
git pull- Run database migrations
php bin/console doctrine:migrations:migrate- Clear cache
rm -rf var/cache/*