argora / foundry
Argora Foundry – boilerplate for SaaS apps and panels
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 3
Open Issues: 2
Language:Twig
Type:project
pkg:composer/argora/foundry
Requires
- php: ^8.3
- ext-pdo: *
- adyen/php-api-library: ^28.1
- argora/tabler-assets: ^1.4
- bacon/bacon-qr-code: ^3.0.1
- bjeavons/zxcvbn-php: ^1.4.2
- chubbyphp/chubbyphp-static-file: ^1.3
- filips123/monolog-phpmailer: ^2.0
- filp/whoops: ^2.18.3
- gettext/gettext: ^5.7.3
- giggsey/libphonenumber-for-php-lite: ^8.13.36
- guzzlehttp/guzzle: ^7.9.3
- imefisto/psr-swoole-native: ^2.0.2
- lbuchs/webauthn: ^2.2
- league/iso3166: ^4.3.3
- liqpay/liqpay: ^1.4
- mevdschee/php-crud-api: ^2.14.30
- monolog/monolog: ^3.9.0
- mpociot/vat-calculator: ^3.22.0
- nyholm/psr7: ^1.8.2
- nyholm/psr7-server: ^1.1.0
- php-di/php-di: ^7.0.11
- phpmailer/phpmailer: ^6.9.1
- pinga/auth: ^0.3.4
- punic/punic: ^3.8.1
- ramsey/uuid: ^4.9
- respect/validation: ^2.4.4
- robthree/twofactorauth: ^3.0.2
- slim/csrf: ^1.5
- slim/flash: ^0.4
- slim/slim: 4.15.1
- slim/twig-view: ^3.4.1
- stripe/stripe-php: ^19.0.0
- utopia-php/messaging: ^0.20.0
- vlucas/phpdotenv: ^5.6.2
README
Argora Foundry is a lightweight and extensible PHP boilerplate built to accelerate the development of modern control panels, SaaS platforms, and internal tools. Designed with developer productivity in mind, it combines a clean architecture, reusable components, and a ready-to-use user panel to help you launch faster—without compromising flexibility or quality.
🚀 Features
- Modular Architecture – Organize your code effortlessly with a clear, scalable structure inspired by proven patterns.
- Built-in Control Panel – A modern and customizable UI template for managing users, settings, and services out of the box.
- SaaS-Ready – Includes essential SaaS features like user authentication, roles & permissions, usage tracking, and more.
- Modern Stack – Powered by PHP 8+, Slim 4 Framework, Twig templates, and Tabler UI for a clean frontend.
- Argora Spark API – A dedicated, extensible API layer for advanced logic, automation, and integration beyond basic CRUD, ideal for smart provisioning and external system hooks.
- Extensible – Designed to be extended with custom modules.
🛠️ Ideal For
- SaaS startups launching fast without reinventing the wheel
- Developers building internal dashboards or admin panels
- Agencies delivering multiple client control panels from a common core
🧱 Philosophy
Argora Foundry is not a full-stack framework, but a focused foundation. It gives you the essentials—routing, user management, templates, modular structure—without locking you in. You stay in control of your stack, while we handle the heavy lifting.
📦 Installation Guide (Ubuntu 22.04/Ubuntu 24.04/Debian 12)
1. Install the required packages:
apt install -y curl software-properties-common ufw add-apt-repository ppa:ondrej/php apt install -y bzip2 composer git net-tools php8.3 php8.3-bcmath php8.3-bz2 php8.3-cli php8.3-common php8.3-curl php8.3-ds php8.3-fpm php8.3-gd php8.3-gmp php8.3-igbinary php8.3-imap php8.3-intl php8.3-mbstring php8.3-opcache php8.3-readline php8.3-redis php8.3-soap php8.3-swoole php8.3-uuid php8.3-xml php8.3-zip unzip wget whois
Configure PHP Settings:
- Open the PHP-FPM configuration file:
nano /etc/php/8.3/fpm/php.ini
Add or uncomment the following session security settings:
session.cookie_secure = 1 session.cookie_httponly = 1 session.cookie_samesite = "Strict"
- Open the OPCache configuration file:
nano /etc/php/8.3/mods-available/opcache.ini
Verify or add the following OPCache and JIT settings:
opcache.enable=1 opcache.enable_cli=1 opcache.jit=1255 opcache.jit_buffer_size=100M
- Restart PHP-FPM to apply the changes:
systemctl restart php8.3-fpm
2. Install and Configure Caddy and Adminer:
- Execute the following commands:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' -o caddy-stable.gpg.key gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg caddy-stable.gpg.key curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list apt update apt install -y caddy
- Edit
/etc/caddy/Caddyfileand place the following content:
FOUNDRY.DOMAIN {
bind YOUR_IPV4_ADDRESS YOUR_IPV6_ADDRESS
root * /var/www/foundry/public
php_fastcgi unix//run/php/php8.3-fpm.sock
encode zstd gzip
file_server
tls your-email@example.com
header -Server
log {
output file /var/log/foundry/caddy.log
}
# Adminer Configuration
route /adminer.php* {
root * /usr/share/adminer
php_fastcgi unix//run/php/php8.3-fpm.sock
}
header * {
Referrer-Policy "same-origin"
Strict-Transport-Security max-age=31536000;
X-Content-Type-Options nosniff
X-Frame-Options DENY
X-XSS-Protection "1; mode=block"
Content-Security-Policy: default-src 'none'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'; img-src https:; font-src 'self'; style-src 'self' 'unsafe-inline' https://rsms.me; script-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/; form-action 'self'; worker-src 'none'; frame-src 'none';
Feature-Policy "accelerometer 'none'; autoplay 'none'; camera 'none'; encrypted-media 'none'; fullscreen 'self'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; payment 'none'; picture-in-picture 'self'; usb 'none';"
Permissions-Policy: accelerometer=(), autoplay=(), camera=(), encrypted-media=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(self), usb=();
}
}
Activate and reload Caddy:
mkdir -p /var/log/foundry
chown caddy:caddy /var/log/foundry
systemctl enable caddy
systemctl restart caddy
- Install Adminer
mkdir /usr/share/adminer
wget "http://www.adminer.org/latest.php" -O /usr/share/adminer/latest.php
ln -s /usr/share/adminer/latest.php /usr/share/adminer/adminer.php
3. Install MariaDB:
curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'
3.1. Ubuntu 22.04
Place the following in /etc/apt/sources.list.d/mariadb.sources:
# MariaDB 11 Rolling repository list - created 2025-04-08 06:39 UTC # https://mariadb.org/download/ X-Repolib-Name: MariaDB Types: deb # URIs: https://deb.mariadb.org/11/ubuntu URIs: https://distrohub.kyiv.ua/mariadb/repo/11.rolling/ubuntu Suites: jammy Components: main main/debug Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp
3.2. Ubuntu 24.04
Place the following in /etc/apt/sources.list.d/mariadb.sources:
# MariaDB 11 Rolling repository list - created 2025-04-08 06:40 UTC # https://mariadb.org/download/ X-Repolib-Name: MariaDB Types: deb # URIs: https://deb.mariadb.org/11/ubuntu URIs: https://distrohub.kyiv.ua/mariadb/repo/11.rolling/ubuntu Suites: noble Components: main main/debug Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp
3.3. Debian 12
Place the following in /etc/apt/sources.list.d/mariadb.sources:
# MariaDB 11 Rolling repository list - created 2025-04-08 06:40 UTC # https://mariadb.org/download/ X-Repolib-Name: MariaDB Types: deb # URIs: https://deb.mariadb.org/11/ubuntu URIs: https://distrohub.kyiv.ua/mariadb/repo/11.rolling/debian Suites: bookworm Components: main Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp
4. Configure MariaDB:
- Execute the following commands:
apt update apt install -y mariadb-client mariadb-server php8.3-mysql mysql_secure_installation
- Access MariaDB:
mariadb -u root -p
- Execute the following queries:
CREATE DATABASE foundry; CREATE USER 'foundry'@'localhost' IDENTIFIED BY 'RANDOM_STRONG_PASSWORD'; GRANT ALL PRIVILEGES ON foundry.* TO 'foundry'@'localhost'; FLUSH PRIVILEGES;
Replace foundry with your desired username and RANDOM_STRONG_PASSWORD with a secure password of your choice.
5. Create a new project using Foundry:
cd /var/www
composer create-project argora/foundry your-project-name
6. Setup Foundry:
cd /var/www/foundry
cp env-sample .env
chmod -R 775 logs cache
chown -R www-data:www-data logs cache
Configure your .env with database and app settings, and set your admin credentials in bin/create-admin-user.php.
7. Install Database and Create Administrator:
php bin/install-db.php php bin/create-admin-user.php
🙏 Acknowledgments
Argora Foundry is based on hezecom/slim-starter, an excellent Slim Framework 4 starter project by Hezekiah Omotsuebe.
We’ve extended and restructured it for SaaS platforms, admin panels, and modern boilerplate needs.