On this page, you will discover the necessary documentation to successfully install and set up our software.
The process of installing the application is simple and does not involve any unusual or complicated tasks. You only need basic knowledge on how to manage files on a server.
Prior to software installation, kindly ensure that your server fulfills the specified requirements.
| Software | Modules |
|---|---|
| PHP 8.2.x | Ctype, Fileinfo, JSON, Mbstring, OpenSSL, cURL |
| Apache 2+ | mod_rewrite |
Set the access permissions of the following to (CHMOD) 644 for files and 775 for folders:
If you configure Amazon S3 for file storage, no writable upload directory is required on the web server. Only the storage/ directories used by the application must remain writable.
Set your domain’s web root to the application’s public directory according to your hosting environment.
For example, if the application is uploaded to the domain.com folder, configure your domain’s document root to point to:
domain.com/public
If your hosting provider does not allow changing the document root—such as when your domain is tied directly to the default public_html directory—upload the application files there and configure the included rewrite rules according to your server setup.
Ensure that application directories such as app/, storage/, views/, and vendor/ are not directly exposed publicly. Only the public/ directory should be accessible from the web.
This section of the documentation is intended to customize the form according to your preferences.
Add the corresponding language-specific pattern to the form rendering template.
const languagePatterns = {
fr: {
subjectLabels: ['sujet'],
namePlaceholders: ['votre nom']
},
};
This guide is intended for developers who will be working on enhancing and further developing the form.
Directory structure:
├── app/
│ ├── Controllers/ - HTTP and API logic
│ │ ├── MailController.php - Form submission and email processing
│ │ └── DownloadController.php - Secure attachment download handling
│ ├── Models/ - Data models
│ ├── Services/ - Reusable business logic and external integrations
│ │ ├── StorageService.php - Local and Amazon S3 storage handling
│ │ ├── AttachmentService.php - File validation and attachment rules
│ │ └── AttachmentDeliveryService.php - Secure download link generation and delivery handling
│ ├── bootstrap.php - Bootstrap and app initialization
│ └── config.php - Centralized configuration
├── lang/ - JSON language files
├── public/ - Public-facing assets (CSS, JS, images, uploads)
├── routes/ - Application routing including secure download routes
├── storage/ - Caching, logs, attachment metadata, and private file storage
├── vendor/ - Composer dependencies
├── views/
│ ├── email/ - Email templates
│ ├── layouts/ - Shared Blade layouts
│ └── form.blade.php - Form rendering template
├── .env.example - Environment variable template
├── .htaccess.example - Apache rewrite rules template
└── index.php - Entry point
This section of the documentation is intended for when you wish to upgrade your existing installation to more recent versions.
Before upgrading production:
Carefully replace or merge files. Recommended steps:
|
Replace / Merge |
Description |
|---|---|
|
/app/Controllers/ |
Replace unless you've customized logic. Includes updates to MailController and the secure DownloadController. |
|
/app/Services/ |
Replace unless you've extended them. Includes attachment validation, storage management, and secure attachment delivery services. |
|
/app/bootstrap.php |
Replace (contains bootstrap updates). |
|
/views/ |
Manually merge customizations, especially form.blade.php and email templates if modified. |
|
/views/layouts/ |
Replace or merge UI layout updates. |
|
/lang/ |
Add or update language files to include any new translation keys. |
|
/public/assets/ |
Replace for updated JavaScript, CSS, AJAX improvements, and frontend enhancements. |
|
/routes/ |
Replace to include secure attachment download routes and any routing updates. |
|
/storage/ |
Preserve logs, cache, uploaded files, attachment metadata, and private storage contents. Do not overwrite unless specifically instructed. |
|
.env |
Do not overwrite. Copy any new environment variables, including storage and attachment delivery settings, as needed. |
|
.htaccess |
Replace only if instructed or if routing changes require updated rewrite rules. |