🌱🏠🖥️ Cross-platform desktop application for greenhouse -- share your local servers or files on the internet in seconds! https://greenhouse.server.garden/ https://greenhouse.server.garden/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
forest 421f822849 bump daemon on windows with filepath fix 16 hours ago
readme WIP commit mac OS daemon installation script 3 days ago
requirements remove mac specific python package requirements 1 day ago
src bump daemon on windows with filepath fix 16 hours ago
.gitignore 1st attempt at installing greenhouse-background-service on windows 2 weeks ago
README.md prepping for alpha 1 day ago

README.md

greenhouse-desktop

Pitney the Pineapple waving at you from behind a laptop

This is the desktop application for the Greenhouse cloud service (in development).

greenhouse-desktop is a cross-platform fbs (fman build system) python/QT application with an accompanying daemon (background service) written in Go. The python app will display status to the user and allow them to configure their tunnels, while the daemon will manage the embedded threshold and caddy processes.

screenshots

screenshot of splash screen

getting started with fbs development

# Download python 3.6 with security updates from https://www.python.org/downloads/release/python-3613/
cd Python-3.6.13/
./configure --enable-shared
make test
# note some tests will fail because of openssl being newer since python 3.6 is very old.  https://bugs.python.org/issue32947
# for now i ignored this 😬

sudo make install
python3.6 -m venv venv
source venv/bin/activate
pip install -r requirements/linux.txt

building a release on Linux

Note:

  • venv/lib/python3.6/site-packages/fbs/
  • venv/lib/python3.6/site-packages/fbs/_defaults
sudo su
source venv/bin/activate
fbs buildvm ubuntu
fbs runvm ubuntu

# you should be inside the docker container now.
# note there is a bug where the fbs .bashrc fails to source the venv properly.
# so you have to do it yourself:

source venv/bin/activate && fbs freeze && fbs release 0.0.0-test3

exit

# now target/ubuntu/greenhouse-desktop.deb should exist!
# since right now root owns all this stuff, lets give it to the normal login user
# for me, that's user #1000 (forest)

mkdir -p my_dist
chown 1000:1000 my_dist
cp target/ubuntu/greenhouse-desktop.deb my_dist/greenhouse-desktop.deb
chown 1000:1000 my_dist/greenhouse-desktop.deb


building a release on Windows

  • open file explorer and search C:\ for api-ms-win-crt-multibyte-l1-1-0.dll
  • Start Menu > search for "Edit the System Environment Variables"
    • Environment Variables... > System Variables > Path > Edit...
    • Choose "New" and enter C:\Program Files (x86)\Windows Kits\10\Redist\10.0.19041.0\ucrt\DLLs\x64
      • (or some other path where this dll appears... ????)
  • install Nullsoft Scriptable Install System (NSIS)
  • download the NSIS Simple Service Plugin
  • copy SimpleSC.dll into C:\Program Files (x86)\NSIS\Plugins\x86-unicode
  • download the NSIS User Manager Plugin
  • copy UserMgr.dll into C:\Program Files (x86)\NSIS\Plugins\x86-unicode
  • Start Menu > search for "Edit the System Environment Variables"
    • Environment Variables... > System Variables > Path > Edit...
    • Choose "New" and enter C:\Users\venie\AppData\Local\Programs\Python\Python36
    • Choose "New" and enter C:\Users\venie\AppData\Local\Programs\Python\Python36\Scripts
    • Choose "New" and enter C:\Program Files (x86)\NSIS
  • install git for windows
  • git clone https://git.sequentialread.com/forest/greenhouse-desktop.git
  • cd greenhouse-desktop
  • download / set up the greenhouse-background-service files if its not done already
    • cd src/installer/windows
    • ./get-background-service-installer-files.sh
  • enter the windows cmd.exe shell instead of git bash
  • python --version
  • python -m venv venv
  • ./venv/Scripts/activate.bat
  • pip install -r requirements/linux.txt
  • fbs run
  • fbs freeze
  • fbs release 0.0.0

TODO it throws the logs away https://stackoverflow.com/questions/20523480/windows-service-output

building a release on MacOS

  • create a MacOS virtual machine
  • get python 3.8.6
  • git clone https://git.sequentialread.com/forest/greenhouse-desktop.git
  • cd greenhouse-desktop
  • python3.6 -m venv venv
  • source venv/bin/activate
  • pip3.6 install -r requirements/linux.txt
  • fbs run
  • fbs freeze
  • fbs release 0.0.0

architechture

This diagram was created with https://app.diagrams.net/. To edit it, download the diagram file and edit it with the https://app.diagrams.net/ web application, or you may run the application from source if you wish.

how the project was initialized originally:

python3.6 -m venv venv
source venv/bin/activate
pip install fbs
pip install PyQt5==5.9.2
fbs startproject