v1.2.3featurefixsecurity20 updatesCopy link
New
Install Synq on any server with one command.
With an install key from your Synquic admin:
curl -sSL https://synquic.tech/install.sh | sh -s -- --key <KEY>(add--domain panel.example.com --email you@example.comfor HTTPS). It sets up Docker, checks every download, and never prints or stores the key outside Docker's own login. Running it again upgrades. The images come from a private, read-only registry on synquic.tech; a request without a valid key gets nothing.Faster rebuilds.
Package downloads (npm, pnpm, yarn, bun, pip, uv, poetry, bundler, composer, go, cargo, maven, gradle) and the Next.js build cache are kept between builds of the same project, and for common Node and Python projects a code-only change reuses the installed dependencies entirely.
WordPress
Is now a one-click template (WordPress 7.1 with MySQL 8.4 and uploads up to 128 MB).
Security
Build variables no longer end up inside images.
Environment variables used while building (including secrets such as
DATABASE_URL) used to be written into the generated Dockerfile, so they were readable in the image history and in a copy of that file inside the image. They are now passed to the build as a BuildKit secret that is never stored in the image. Servers without BuildKit keep the old behaviour and the build log says how to fix it (installdocker-buildx).The panel's images ship no source code.
The API image is a single minified bundle with its data files: no TypeScript sources, no source maps, and 556 MB instead of 2.9 GB. The dashboard ships no source maps either.
Fixes
Node apps start with their production command.
A NestJS app crash-looped with "Cannot find module '/workspace/dist/main'" because Synq ran
npm run start, which is thenest startdev server: it recompiles on every boot. Synq now prefersstart:prod(orstart:production) and never picks astartscript that runs a dev server (nest start,nodemon,next dev,vite,ng serveand others). Without a production script it runs the framework's own production command, for examplenode dist/main.jsfor NestJS.Existing projects are fixed on their next deploy.
When a project's saved start command is
npm run startand that script is a dev server, the build uses the production command instead and says so in the build log. Rollbacks to those releases start the same way. A start command you typed is never changed.Every supported stack was built and run on a real server.
49 Sample apps, one per stack, now build, start and answer HTTP. Fixes found along the way:
- Rails, Sinatra and Rust projects were misdetected on GitHub and Linux because
GemfileandCargo.tomlwere looked up in lowercase. Rails and Sinatra are detected again, and Rust starts the right binary. - Apps now listen on all interfaces in containers (Next.js, Nuxt, SvelteKit, Remix, Astro, Fastify, Gatsby, Rocket), and read the port Synq gives them (Django, Flask, FastAPI, Spring Boot, Quarkus, Rocket).
- Production mode is set where frameworks default to development (Rails, Sinatra, Symfony, Phoenix, Gin), with a clear build-log warning when a framework secret such as
SECRET_KEY_BASEorAPP_KEYis missing. - Static sites (Create React App, Angular, Vue, Vite, Gatsby, static Astro) deploy as static files instead of running a dev server. Angular's output folder is read from
angular.json. Python projects using uv, Poetry or Pipenv install into the image correctly
Django reads its project name from
manage.py; collectstatic no longer fails a stock project.- Go, Rust, .NET and Java builds use images that match the project's declared version, Gradle projects build and run, and Rust runtimes include CA certificates.
- Rust projects are no longer refused by the pre-deploy check.
- Phoenix, Symfony, AdonisJS, Elysia and Deno (new) build and start.
- A Ruby project without a
Gemfile.lockbuilds. synq config initwrites the production start script intosynq.json.- Build logs no longer mark every build step as a warning.
- The server's disk is cleaned every night and after each deploy (old Synq images, leftover image layers, build cache over 10 GB). The automatic build cache limit is now 10 GB.