Commit Graph

100 Commits

Author SHA1 Message Date
Daniel Markstedt
2354b62f43
Introduce FTP server option; sundry bug fixes (#1028)
* Add script to install ftp server

* Grep only the first ip address to avoid capturing the docker ip address

* Consistently use --assume-yes and --no-install-recommends with apt-get

* Capture corner case where both rascsi and piscsi groups exist

* Add CI/CD dependency of easyinstall.sh

* Update the run choices
2022-12-09 21:00:31 -08:00
Daniel Markstedt
35447cc1c6
Migrate rascsi data to piscsi with easyinstall (#1021)
Hybrid approach of:
- Always checking for legacy services for each workflow that involves installing new services, then disable and rename them.
- Check for the rascsi group, as well as old rascsi.conf, rascsi_bridge, config dir and secret file inline whenever the script interacts with them, then rename them.
- Check for the old self signed cert and key, as well as compiled protobuf libs, and delete them when the web ui is installed

Also fixed:
- the old manpage renaming script which should keep the old 'rascsi' names.
- removed the ancient apache cleanup, since it's been over 2 years now since the PHP webapp was deprecated.
- general purpose stop/disable/status functions for systemd services
- general purpose deleteFile function
- default to half of the max no. of cores for compiling
- use the SKIP_PACKAGES flag in more functions
- introduce a SKIP_MAKE_CLEAN flag
2022-12-07 10:59:15 -08:00
Daniel Markstedt
52c2aa474f
Rebrand project to PiSCSI (#1016)
* Rebrand project to PiSCSI
- rascsi ->piscsi
- rasctl -> scsictl
- rasdump -> scsidump
- ras* -> piscsi* (rasutil -> piscsi_util, etc.)

* Refined the formatting and wording of the app startup banner
* Kept some references to rascsi and rasctl where backwards compatibility is concerned
* Point to the new github repo URL

Co-authored-by: nucleogenic <nr@nucleogenic.com>
Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
2022-12-05 09:58:23 -08:00
nucleogenic
88ff542aeb
Run web API test suite in GitHub Actions (#1009)
- Fixed ignore patterns in .dockerignore
- Added healthchecks to backend and web containers
- Reduced Docker image sizes
- Removed RaSCSI references in various areas (e.g. rascsi -> backend)
- Added compilation-only step to easyinstall.sh
- Moved apt package lists to variables
- Revert to triggering GitHub Actions runs on push
- Updated web/frontend_checks workflow to run black and flake8 against all Python sources
- Capture log files from backend/web containers
- Fix None to float conversion bug when user agent is absent or unrecognised
2022-12-04 14:31:57 +00:00
Daniel Markstedt
0d95890887
Get and set pretty hostname to use as system name in Web UI (#997)
- Display the pretty hostname as system name in header
- Move IP and hostname down to the footer
- New endpoint for setting the pretty hostname, plus form field in the Web UI
- (unrelated) Use platform.uname() instead of shell uname
- (unrelated) Better logic for fetching the Mac HD Drivers zip file in easyinstall.sh
2022-11-20 10:20:32 -08:00
Daniel Markstedt
a7a8510796
Bump to Netatalk 2.221101 (#983) 2022-11-11 21:35:46 -08:00
Daniel Markstedt
e8b72c48de
Introduce option to use clang++, and option to skip apt packages (#971)
- Make clang++-11 the default for compiling rascsi
- Add --with_gcc option to use g++ instead
- Add option to skip apt-get package installation (this saves a significant amount of time running the script on a Zero when you already have the required packages installed)
- Add a line to the script menu showing current options
- Surrounding cleanup
2022-11-07 18:59:19 -08:00
Daniel Markstedt
921ba7d2ed
Headless bypass for sudo -v in easyinstall (#963)
* Headless bypass for sudo check. Also, correct check for mac drivers dir.

* Remove inline sudo -v checks. There's no proof they improve anything.

* Use akuker's dropbox storage
2022-11-03 20:58:31 -07:00
Daniel Markstedt
85edd50047
Partition and format HFS/FAT volumes in the Web UI + SMB install (#946)
- New "format as" option when creating new images; removing the image creation options from easyinstall
- Bring in HFSer as new submodule providing the driver binaries; removing the Lido driver binary from this repo
- Add SpeedTools driver option
- Point to github mirror of hfdisk, since the original git server is down
- While rearranging the easyinstall options, moved the CtrlBoard option up to the main section
- Add an easyinstall script to configure Samba, while consolidating file sharing with Netatalk
2022-11-01 16:43:24 -07:00
Daniel Markstedt
08194af424
Move C++ code into cpp/ dir (#941)
- Moved C++ code to cpp/ from src/raspberrypi
- Related updates to Makefile, easyinstall.sh, and the github build rules
- Removed the native X68k C code in src/x68k from the repo
2022-10-25 12:59:30 -07:00
nucleogenic
198c10f70a
Enable web UI auth for test environment (#931) 2022-10-22 09:49:46 -07:00
Daniel Markstedt
ade656e38b
Break out frontend and backend auth options into stand alone options (#925)
* Break out frontend and backend auth options into stand alone options

* Improve the token auth checks when installing clients
2022-10-21 19:49:53 -07:00
Daniel Markstedt
ac39b3b8a3
Netatalk: Prompt user when pre-existing config is found; Append the images dir as a shared volume (#916)
* Prompt the user before continuing with installation when Netatalk config dir is detected

* Add Netatalk with images dir sharing as an experimental feature
2022-10-17 17:42:49 -07:00
Daniel Markstedt
0e4d42f04c
Use man2html to generate man pages in the Web UI (#887)
* Use man2html to generate man pages in the web UI

* Fix tests
2022-10-04 06:38:15 -07:00
nucleogenic
6ad436c085
Add --headless option to easyinstall.sh, enable web auth by default on standalone web UI installs 2022-09-26 00:00:18 +01:00
Daniel Markstedt
12b61ada84
Consistently use SI-compliant notation for file sizes (B/KiB/MiB/GiB/TiB) where appropriate. (#855) 2022-09-25 16:37:36 -05:00
nucleogenic
673da6312b
Add Docker environment for development and testing of the web UI
Add --token parameter to easyinstall.sh

Add --skip-token parameter to easyinstall.sh

Install required apt packages explicitly (--no-install-recommends)

Allow standalone RaSCSI and web UI installations to specify an auth token

Add development mode to web UI (web/start.sh --dev-mode)

Initial Docker-based development environment for Python and web UI

Bump protobuf version

Workaround for Flask development server and asyncio incompatibility

Build Python protobuf interface on container launch, if it doesn’t exist

Allow containers to be configured with environment variables, add support for token authentication

Move web UI live editing setup out of main Docker Compose config

Update dockerignore to exclude by default

Update README

Add OS_DISTRO, OS_VERSION and OS_ARCH build args

Allow extracted files to be moved to target when crossing a filesystem boundary

Reduce noise from watchmedo auto-restarts

Update Docker tag structure to rascsi:{build}-{platform}-{variant}

Prevent Docker Compose from attempting to pull images from Docker registry

Add workaround for issue #821

Allow container processes to be stopped with Ctrl+C

Update README, bind to ports 8080/8443 on the Docker host by default

Update README to clarify audience and no board connectivity

Add AIBOM and GAMERNIUM to --connect_type validation

Update cfilesystem.patch following rebase
2022-09-08 12:19:30 +01:00
Uwe Seimet
355b42703b
Add libgmock-dev to package list (for building and running tests on the Pi) (#824) 2022-09-02 11:20:34 -05:00
akuker
c05b5b58a1
Update easyinstall.sh (#820) 2022-08-31 17:50:09 +02:00
Daniel Markstedt
aacc8e0c29
easyinstall: use pip3 consistently, create working dirs early, etc. (#801)
* Use the pip3 alias to work on older systems, such as Buster

* Put Reloaded into the main menu

* Make sure working dirs are created earlier in the process. Issue#803
2022-08-25 19:59:57 -05:00
Daniel Markstedt
8846871e47
Bump to Netatalk 2.220801 and Macproxy 22.8 (#796)
* Bump to Netatalk 2.220801

* Bump Macproxy version to 22.8, while refactoring and fixing bugs in the install script
2022-08-25 19:56:53 -05:00
Daniel Markstedt
161bd32ba7
Merge pull request #789 from nucleogenic/webui-add-extra-archive-format-support
Allow images to be extracted from StuffIt, tarball, gzip, and 7z
2022-08-19 10:56:39 -07:00
nucleogenic
b5e6438a45
Allow images to be extracted from StuffIt, tarball, gzip, and 7z archives 2022-08-12 04:19:02 +01:00
Daniel Markstedt
8cd50da2d3
Fixes to README and easyinstall text (#787)
* Update web README to point to the right dir and url

* Notify that an ssl cert is being created.

* Document the de-facto release number strategy of this project.

Co-authored-by: RaSCSI User <user@rascsi.com>
2022-08-05 09:30:20 -05:00
nucleogenic
0a17633de3
Add HTTPS support to web UI 2022-08-01 16:09:01 +01:00
Daniel Markstedt
a09885cdfe
Turn on web UI auth by default, and remove the stand alone option from the script. (#780) 2022-07-31 17:21:31 -05:00
Daniel Markstedt
4b874ab135
Merge pull request #779 from akuker/akuker-precache-pip
Download and cache pip packages as part of easyinstall
2022-07-30 23:38:20 -07:00
Daniel Markstedt
87718ce53f
Bump to Netatalk v2.220702 while removing install script logic that is now in an install script in the Netatalk code. (#777) 2022-07-30 22:07:31 -05:00
RaSCSI User
0768803425 Download and cache pip packages as part of easyinstall 2022-07-31 02:59:52 +01:00
Daniel Markstedt
8265d25d88 Create the secret file in .config/rascsi instead. Plus some added code comments, and removing a superfluous sudo -v. 2022-07-28 22:48:18 -07:00
nucleogenic
dc1414ba71
Add RASCSI host and port arguments to web/start.sh (#771)
* Fix data type of --rascsi-port argument

* Add support for --rascsi-host and --rascsi-port arguments

* Add short parameter names, increase specificity of web port parameter
2022-07-25 21:47:11 -07:00
Benjamin Zeiss
0297fe856a
8bit encoder detection + debounced button detection, numpy removal (#710)
* debounce interrupt events for rotary events and button presses with 400 microseconds by default.

* Massive improvements for the encoder detection. Removed numpy as a dependency.

* Debounce button presses which started to jump around.

* formatting cleanup.
2022-03-01 20:27:14 -06:00
Benjamin Zeiss
4178d4b845
Small installation fixes when upgrading an existing device. (#707) 2022-02-25 17:42:56 -08:00
Benjamin Zeiss
cd0da558c3
Initial version of the Control Board UI (#687)
Initial version of the Control Board UI (#687)
2022-02-25 21:03:36 +01:00
Daniel Markstedt
46d23a0d5d
Proper cleanup of old python protobuf libraries. (#667) 2022-02-14 15:30:33 -08:00
Daniel Markstedt
afb23586d0
Fix typo in the Netatalk install script (#643) 2022-02-06 10:30:06 +01:00
Daniel Markstedt
38f8191a45
Try to prevent frequent sudo timeout after compiling rascsi (#636)
* Try to prevent frequent sudo timeout after compiling rascsi

* Fix typo
2022-02-03 19:40:15 -06:00
Daniel Markstedt
7c1020a40b
Use Netatalk 2.x v220101 (#631)
* Use Netatalk 2.x v220101

* Correct removal of existing copy

* Add missing libavahi-client-dev

* Improve cleanup of previous Netatalk installation

* Print out systemd status after starting the services

* Add CUPS installation
2022-02-03 19:39:25 -06:00
Benjamin Zeiss
ffb0aa61b4
fix for #621. (#624) 2022-01-29 11:06:10 -08:00
Benjamin Zeiss
089dc302e5
restructuring towards python client library #455 (#613)
* python client library clean branch for PR. #455

* removed superfluous file. #455

* removed one more superfluous file. #455

* README.md, .pylintrc and pylint based fixes. #455

* updated wrt. to the review comments. #455

* removed pylint documentation duplication. #455
2022-01-21 15:08:29 -08:00
Benjamin Zeiss
03e7007d3a
Missing oled systemd file caused the service installed/running detection to fail. (#612) 2022-01-16 21:11:21 -08:00
Benjamin Zeiss
17497cf1fe clean squashed restructuring branch. #455 2022-01-09 20:22:19 +01:00
Daniel Markstedt
5befff28e6
Improve token auth and oled monitor install scripts; better venv cleanup logic (#587)
* Trigger installation of the oled monitor script after installing rascsi; break out the token auth code and clarify wordings.

* Better logic for venv cleanup
2022-01-01 11:38:10 -06:00
Daniel Markstedt
3af3f3e2de
Bump macproxy version to 21.12.3 (#586) 2021-12-31 22:07:17 -06:00
Daniel Markstedt
ab55d95fd4
Add token authentication to Web UI and OLED monitor script (#554)
* Throw 403 forbidden if token auth is enabled

* Use argparse to parse port and password parameters; use password token to authenticate

* Move config file loading to before_first_request block

* Add token auth to monitor script

* Install script for enabling token auth

* Token config flow for oled monitor installation

* Correct permissions

* Fix bug

* Cleanup
2021-12-23 11:12:16 -06:00
Daniel Markstedt
5817ca6df5
Skip git steps in shell scripts if not a valid git repo (#524)
* Skip git steps if no .git dir exists

* Tweak message

* Check for git repo in start.sh

* Fix logic & cleanup

* Make a different check for git repo

* Make a different check for git repo

* Make a different check for git repo
2021-12-23 11:08:50 -06:00
Daniel Markstedt
693ade2967
Bump Macproxy version to 21.12.2 (#550) 2021-12-20 21:04:23 +01:00
akuker
958fb95908
Adjust bus settle delay to match SCSI standard (#544)
* Move the GCC v10 compiler flags into makefile instead of easyinstall.sh

* #504 - Update the bus settle time to match the SCSI standard

Co-authored-by: RaSCSI User <user@rascsi.com>
2021-12-20 19:50:14 +01:00
Daniel Markstedt
c887edfc8c
Remove special elevated privileges for the Web Interface (#536)
* Use the pi_shutdown method to restart the rascsi service

* Use the pi_shutdown method to restart the rascsi service

* Remove modifications to sudoers no longer needed

* Introduce sleeps attempting to connect to socket; reduce overall number of retries

* Remove systemd helped methods and the functionality that depends on it

* Attempts to speed up splash code

* Remove unneccessary verbosity

* Attempt to optimize service definition
2021-12-19 17:50:03 -06:00
Daniel Markstedt
39bc485671
Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)
* Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies

* Cleanup
2021-12-19 17:28:22 -06:00