Skip to content

About

A client for the Synology DSM Web API: File Station, virtual machines, users and shares, administration and Container Manager

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

@deckyard/synology

test Documentation release

A client for the Synology DSM Web API, for Jennifer programs: log in (with 2-step verification and trusted devices), read the system summary, work with File Station (shared folders, listing, creating, renaming, copying, moving, deleting, upload and download), deploy and run virtual machines in Virtual Machine Manager, manage local users, groups, shared folders and their permissions, and administer the NAS: certificates, snapshots, health, updates, power, packages, services, scheduled tasks and Hyper Backup. Container Manager deploys Compose projects and runs containers. call reaches any other API under /webapi, and DSM's numeric error codes come back as readable messages.

Documentation

Install

jvc add @deckyard/synology

This vendors the deck to vendor/<scope>/synology/. Without jvc, unpack the src/ subtree of a release archive (<scope>-synology-<version>.tar.gz) there.

Usage

import "@deckyard/synology/" as synology;

def c as synology.Client init synology.client("nas.example.com");
$c = synology.withCaCert($c, fs.readBytes("nas.pem"));
$c = synology.login($c, "backup", "secret");

synology.mkdir($c, "/backup/2024", true);
synology.upload($c, "/backup/2024", "db.sql.gz", fs.readBytes("db.sql.gz"), true);
for (def f in synology.files($c, "/backup/2024")) {
    io.printf("%s %d\n", $f.name, $f.size);
}
$c = synology.logout($c);

Requirements

Jennifer 0.25.0 or newer, the default jennifer binary (not jennifer-tiny), and the net capability. DSM 6.2 or newer; DSM 7 is the main target, and Container Manager needs DSM 7.2.

Development

tools/check-all.sh                   # the full gate, as CI runs it
jennifer test src/synology_test.j    # the test overlay
tools/check-docs.sh                  # docs against the code
tools/pack.sh dist                   # build the release archive

Licence

LGPL-3.0-only, see LICENSE. Copyright (C) 2026 mplx <mplx@jennifer-lang.dev>.

tools/check-headers.sh checks every source file's SPDX header against deck.toml.

About

A client for the Synology DSM Web API: File Station, virtual machines, users and shares, administration and Container Manager

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors