Download the PHP package smith89k/syno-sail without Composer

On this page you can find all versions of the php package smith89k/syno-sail. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package syno-sail

SynoSail - Synology Laravel Docker Configuration

SynoSail is a drop-in package designed for Laravel developers who want to deploy their applications on a Synology NAS using third-party Docker GUI managers like Dockhand, Dockge, Arcane, or Portainer.

Why this package?

Deploying Laravel often involves building images and managing complex configurations. This package scaffolds a complete docker-compose.yml Stack designed specifically for Synology's strict folder permissions (tested on Synology NAS DS723+ running DSM 7.4) and GUI Docker managers.

It includes an init service that automatically copies pre-compiled assets, Nginx configs, and PHP configs into persistent, permission-safe data folders on your Synology NAS upon startup.


Step 1: Installation & Building (On Your Local Machine / CI)

First, install this package in your Laravel project via Composer:

Next, publish the Docker configuration files to your project root.

For a first-time installation, run:

If you are updating the package and want to pull the latest versions of the stubs (Note: this will overwrite any custom changes you made to these files), run:

This command will copy the following into your project root:

Build & Push Your Image Because we included a GitHub Actions workflow, your image will automatically build and push to GitHub Container Registry (GHCR) when you push to the main branch. Make sure you add a GHCR_PAT repository secret containing a Personal Access Token with write:packages permissions.

Alternatively, you can build locally:


Step 2: Preparing Dockhand (On Synology DS723+ / DSM 7.4)

Now that your image is on the registry, follow these strict steps on your Synology NAS to deploy it.

  1. Create the Stack (Do not deploy yet!) Open Dockhand (or Dockge/Arcane), and create a new Stack/Project. Copy the contents of your docker-compose.yml into the editor. Copy the contents of .env.docker.example into the .env editor, and fill out your variables (e.g., APP_KEY, database credentials, and your registry image url). Save the stack, but do NOT start it.

  2. Set Synology Folder Permissions (Crucial) Because Synology is strict about file creation permissions for Docker volumes, you must manually create the data folder first:

    • Open File Station in Synology DSM.
    • Navigate to the folder where your stack was saved (e.g., /volume1/docker/dockhand/stacks/<your-environment-or-user>/<your-project-name>/).
    • Create a new folder inside it named data.
    • Right-click the data folder -> Properties -> Permission tab.
    • Give Everyone Read & Write permissions, and ensure you check "Apply to this folder, sub-folders and files".
  3. Deploy the Stack Go back to your Docker manager and click Start/Deploy.

What the Services Do:

Why security_opt: seccomp=unconfined?

You may notice the security_opt: ["seccomp=unconfined"] flag used in the services. Synology's DSM often runs on older Linux kernels with an outdated default seccomp profile in Docker. Newer Docker images (like Alpine or Debian bases) use new system calls (such as clone3) that are blocked by Synology's default profile, causing containers to instantly crash or fail to start. Setting seccomp=unconfined bypasses this outdated filter and allows the containers to run normally on Synology NAS without breaking.


Step 3: Setting up Backups via DSM Task Scheduler

We've provided a backup.sh script (located in the published docker/scripts/ folder) to safely dump your database and compress your storage folder, keeping a 7-day retention.

Note on Backup Location: To prevent backups from being deleted if you remove or recreate your stack in Dockhand/Dockge, the script automatically saves backups outside the stack folder in /volume1/docker/backups/<your-project-name>. You can override this by defining BACKUP_DIR in your .env file.

To run this automatically every night:

  1. Open Control Panel in Synology DSM.
  2. Go to Task Scheduler -> Create -> Scheduled Task -> User-defined script.
  3. General: Name it "Laravel Backup", user root.
  4. Schedule: Set it to run daily at 2:00 AM.
  5. Task Settings: In the "Run command" box, execute the script. Make sure to pass the DEPLOY_PATH of your stack:

License

The MIT License (MIT).


All versions of syno-sail with dependencies

PHP Build Version
Package Version
Requires php Version ^8.0
illuminate/support Version ^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/console Version ^9.0|^10.0|^11.0|^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package smith89k/syno-sail contains the following files

Loading the files please wait ...