Giter Club home page Giter Club logo

grocy-desktop's Introduction

Logo

grocy-desktop

A (Windows) desktop application wrapper for grocy
Created by @berrnd


Questions / Help / Bug Reports / Feature Requests

Please don't send me private messages or call me regarding grocy help. I check the issue tracker and the subreddit pretty much daily, but don't provide grocy support beyond that.

How to install

  • Classic installer
    • Just download and execute the latest release setup, afterwards you will have a shortcut on your desktop which starts grocy.
  • Microsoft Store
    Get it from Microsoft

Please note that user data is not automatically transfered when switching between the classic installer and the Microsoft Store version, please use the backup/restore functionality to transfer your data.

How to update

Just download and execute the latest release installer. grocy and Barcode Buddy (if enabled) can also be updated separately (see the grocy and Barcode Buddy menu in the top menu bar).

How to backup/restore

All user data can be exported and restored as a ZIP file (see the grocy and Barcode Buddy (if enabled) menu in the top menu bar).

Localization

grocy-desktop is fully localizable - the default language is English (integrated into code), a German localization is always maintained by me.

You can easily help translating grocy on Transifex if your language is incomplete or not available yet.

Any translation which once reached a completion level of 70 % will be included in releases.

grocy-desktop and grocy will use automatically the localization based on your system language, if available.

Barcode Buddy integration

Barcode Buddy is a community contributed barcode helper tool for grocy and can be activated via File -> Enable Barcode Buddy.

External access

Both, grocy and Barcode Buddy (if enabled), can be optionally accessed from external machines, external access can be enabled via File -> Enable external access (please accept the native Windows firewall question accordingly). See the status bar for information about the URLs.

This should only be used in trusted (local) networks.

User data synchronization

If you want to have grocy-desktop on more than one machine, you can enable synchronization of all user data via File -> Enable user data synchronization. All user data will be exported to the selected directory an closing the application and restored on application start (e. g. use any cloud-synced directory for that).

Motivation

grocy is a selfhosted PHP web application, so normally runs on webservers. If you are not so familiar with the technical things regarding webservers, but just want to have grocy running like a normal (Windows) desktop application, this is what you need.

Things worth to know

How this works technically

grocy-desktop is a .Net Windows Forms application. It uses CefSharp as an integrated browser and utilizes nginx and PHP (FastCGI) to host grocy. The UWP app (.appx package to be distributed through the Microsoft Store) is built using Desktop Bridge, all needed dependencies/manifests are located in the appx_dependencies folder.

What the installer does

The installer has bundled, beside the application itself and the CefSharp dependencies, a for grocy configured PHP and nginx version (in embedded_dependencies/php.zip / embedded_dependencies/nginx.zip) and the current grocy and Barcode Buddy release.

Everything will be unpacked to %programfiles%\grocy-desktop by default, the path can also be changed during the installation process. (This does not apply when running/installing the UWP app, normally from the Microsoft Store - UWP apps have their own default package locations.)

What happens on start

grocy-desktop will do the following things and then opens the locally hosted instance in the integrated browser:

  • Unpacking the dependency ZIP files, if needed, to %appdata%\grocy-desktop\runtime-dependencies
    • grocy to %appdata%\grocy-desktop\grocy
    • Barcode Buddy (if enabled) to %appdata%\grocy-desktop\barcodebuddy
    • When running the UWP app (normally installed from the Microsoft Store) the used paths are
      • %userprofile%\.grocy-desktop\runtime-dependencies
      • %userprofile%\.grocy-desktop\grocy
      • %userprofile%\.grocy-desktop\barcodebuddy
  • Configuring grocy and Barcode Buddy (if enabled) in embedded mode (user data will be saved to %appdata%\grocy-desktop\grocy-data / %appdata%\grocy-desktop\barcodebuddy-data, these paths can be changed (see the grocy and Barcode Buddy (if enabled) menu in the top menu bar)
    • When running the UWP app (normally installed from the Microsoft Store), the default path used is %userprofile%\.grocy-desktop\grocy-data / %userprofile%\.grocy-desktop\barcodebuddy-data
    • The default ports used are 4010 for grocy and 4011 for Barcode Buddy, if they're already used, a random free port is used instead
  • Starting nginx, bound to localhost if external access is disabled, otherwise bound to all network interfaces
  • Starting PHP FastCGI, bound to localhost on a random free port

Contributing / Say Thanks

Any help is more than appreciated. Feel free to pick any open unassigned issue and submit a pull request, but please leave a short comment or assign the issue yourself, to avoid working on the same thing.

See https://grocy.info/#say-thanks for more ideas if you just want to say thanks.

Roadmap

There is none. The progress of a specific bug/enhancement is always tracked in the corresponding issue, at least by commit comment references.

Screenshots

grocy-desktop

How to build

You will need Visual Studio 2022. All dependencies are included, available via NuGet or will be downloaded at compile time (see build events). The setup is built using WiX Toolset, which should be installed along with the Wix Toolset Visual Studio 2022 Extension.

To build the .appx package (UWP app) you'll need the Windows 10 SDK 10.0.19041.0 (this is done in the Post-build event of the grocy-desktop-setup project).

License

The MIT License (MIT)

grocy-desktop's People

Contributors

berrnd avatar dependabot[bot] avatar forceu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.