All Projects → SynoCommunity → spkrepo

SynoCommunity / spkrepo

Licence: MIT license
Synology Package Repository

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects

Labels

Projects that are alternatives of or similar to spkrepo

Synology Download Manager
An open source browser extension for adding/managing download tasks to your Synology DiskStation.
Stars: ✭ 138 (+38%)
Mutual labels:  synology
synologylyric
Collection of Synology Audio Station Lyrics Module
Stars: ✭ 61 (-39%)
Mutual labels:  synology
AirConnect-Synology
Updated AirConnect packages for Synology NAS and Synology Router
Stars: ✭ 200 (+100%)
Mutual labels:  synology
Openhab Syno Spk
openHAB Synology SPK Install Package
Stars: ✭ 160 (+60%)
Mutual labels:  synology
qb-rss-manager
qBittorrent rss订阅规则管理, 支持Docker环境, 群晖, Windows桌面, Linux桌面的qb. 推荐直接使用懒人包体验完整功能.
Stars: ✭ 134 (+34%)
Mutual labels:  synology
flickr-uploader
Upload a directory of media to Flickr to use as a backup to your local storage
Stars: ✭ 38 (-62%)
Mutual labels:  synology
Synology
Cheatsheet and bash scripts sripts for Synology Nas Stations cheet cheat sheet nas networkdisk
Stars: ✭ 125 (+25%)
Mutual labels:  synology
synology-docker
An Unofficial Script to Update or Restore Docker Engine and Docker Compose on Synology
Stars: ✭ 130 (+30%)
Mutual labels:  synology
Home-Assistant Config
BeardedTinker Home Assistant configuration. Feel free to browse, edit, tweak, improve, criticize and suggest.
Stars: ✭ 241 (+141%)
Mutual labels:  synology
synology
My Synology automation scripts. Making Synology NAS command line usable
Stars: ✭ 45 (-55%)
Mutual labels:  synology
Pyload
The free and open-source Download Manager written in pure Python
Stars: ✭ 2,393 (+2293%)
Mutual labels:  synology
cloudflareddns
DDNS with Cloudflare
Stars: ✭ 33 (-67%)
Mutual labels:  synology
synology-api
A Python wrapper around Synology API
Stars: ✭ 116 (+16%)
Mutual labels:  synology
Photostation Upload Lr Plugin
Photo StatLr (aka PhotoStation Upload) is a Lightroom Publish and Export Service Plugin that enables the export /publishing of photos and videos from Lr to a Synology Photo Station. It uploads the photos/videos and all required thumbnails. It can download comments and ratings and do a real two-way synch of various metadata (tags, ratings, labels).
Stars: ✭ 159 (+59%)
Mutual labels:  synology
synology-open-vm-tools
VMware Tools for Synology DSM
Stars: ✭ 93 (-7%)
Mutual labels:  synology
Scripts
This project attempts to improve DSM's compatibility
Stars: ✭ 130 (+30%)
Mutual labels:  synology
Synology-NAS-monitoring
influxDB, Grafana, snmp and telegraf
Stars: ✭ 140 (+40%)
Mutual labels:  synology
docker-telegraf-influxdb-grafana
Docker Image with Telegraf, InfluxDB and Grafana
Stars: ✭ 17 (-83%)
Mutual labels:  synology
synology-csi
Container Storage Interface (CSI) for Synology
Stars: ✭ 136 (+36%)
Mutual labels:  synology
synology-decrypt
An open source implementation/description of the Synology Cloud Sync encryption/decryption algorithm
Stars: ✭ 91 (-9%)
Mutual labels:  synology

spkrepo

Synology Package Repository

Build Discord

Development

Installation

  1. Install dependencies with poetry install
  2. Run the next commands in the virtual environment poetry shell
  3. Create the tables with python manage.py db create
  4. Populate the database with some fake packages with python manage.py db populate
  5. Add an user with python manage.py user create -u Admin -e [email protected] -p adminadmin
  6. Grant the created user with Administrator permissions python manage.py user add_role -u [email protected] -r admin
  7. Grant the created user with Package Administrator permissions python manage.py user add_role -u [email protected] -r package_admin
  8. Grant the created user with Developer permissions python manage.py user add_role -u [email protected] -r developer

To reset the environment, clean up with python manage.py clean.

Run

  1. Start the development server with python manage.py runserver
  2. Website is available at http://localhost:5000
  3. Admin interface is available at http://localhost:5000/admin
  4. NAS interface is available at http://localhost:5000/nas
  5. API is available at http://localhost:5000/api
  6. Run the test suite with poetry run pytest -v

Docker Compose Run

It is also possible to start a development environment with postgres database using docker compose:

  1. Build and run docker-compose up --build
  2. On first run you can apply database migrations with docker exec spkrepo_spkrepo_1 python manage.py db upgrade. Also run any other command that you need (populate the databse, create user) as mentioned above but by prefixing with docker exec {container_id} [...].
  3. Browse to http://localhost:5000
  4. To tear down the environment, run docker-compose down --remove

Deployment

Configuration

Create a config file ./config.py to disable debug logs, connect to a database, set a secure key and optionally set a cache:

Use LC_CTYPE=C tr -cd '[:print:]' < /dev/urandom | head -c 64 or base64 < /dev/urandom | head -c 64 to get a random string

DEBUG = False
TESTING = False
SECRET_KEY = "Please-change-me-to-some-random-string"
SQLALCHEMY_ECHO = False
SQLALCHEMY_DATABASE_URI = "postgresql://user:pass@localhost/dbname"
# https://pythonhosted.org/Flask-Caching/#configuring-flask-caching
CACHE_TYPE= "simple"
# For signing packages
GNUPG_PATH= "/usr/local/bin/gpg"

Docker

Example usage:

docker run -it --rm --name spkrepo -v $(pwd)/data:/data -p 8000:8000 ghcr.io/synocommunity/spkrepo

Additional configuration can be mounted in the container and loaded by putting the path into SPKREPO_CONFIG environment variable.

e.g.

docker run -it --rm --name spkrepo -v $(pwd)/data:/data -v $(pwd)/docker-config.py:/docker-config.py -e SPKREPO_CONFIG=/docker-config.py -p 8000:8000 ghcr.io/synocommunity/spkrepo

Serve app via a WSGI server.

Example:

pip install gunicorn
SPKREPO_CONFIG="$PWD/config.py" gunicorn -w 4 'wsgi:app'
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].