Commit Graph

115 Commits

Author SHA1 Message Date
Uwe Seimet
41bdcd4aed
Issues 1179 and 1182 (#1232)
* Update logging

* Remove duplicate code

* Update unit tests

* Clean up includes

* Merge ProtobufSerializer into protobuf_util namespace

* Precompile regex

* Add const

* Add Split() convenience method, update log level/ID parsing

* Move log.h to legacy folder

* Elimininate gotos

* Fixes for gcc 13

* Update compiler flags

* Update default folder handling

* Use references instead of pointers

* Move code for better encapsulation

* Move code

* Remove unused method argument

* Move device logger

* Remove redundant to_string

* Rename for consistency

* Update handling of protobuf pointers

* Simplify protobuf usage

* Memory handling update

* Add hasher
2023-10-15 08:38:15 +02:00
Daniel Markstedt
2ced0d3515 Default compiler threads based on available RAM, but no more or less than available cores 2023-10-07 19:46:30 +09:00
Daniel Markstedt
65c1b194c5
Manage Samba and Netatalk with Webmin (#1217)
* Display status of Samba/Netatalk/vsftp in the footer, with links to Webmin module

* Add option to install Webmin and the netatalk2 module
2023-09-24 09:30:54 -07:00
Daniel Markstedt
3b6822d7c8
easyinstall: Dynamically detect an available network i/f, and abort if none is found (#1193)
* Dynamically detect an available network i/f, and abort if none is found

* Network i/f fallback for headless mode

* Split piscsi installation and system service configuration
2023-07-31 12:13:23 -07:00
Daniel Markstedt
fa2b02b222
Bump netatalk 2.x version to 230701 (#1185) 2023-07-17 19:23:10 -05:00
Daniel Markstedt
8dd5071122
Bump Netatalk to v230302 (#1142) 2023-04-09 19:29:25 -05:00
Daniel Markstedt
ff017a9c1d
Web UI: Handling for non-existence of working dirs (#1130) 2023-03-23 20:07:19 -07:00
Daniel Markstedt
b6cc6a23af
Bump to Netatalk 2.x 230301 (#1119) 2023-03-06 09:18:04 -08:00
Daniel Markstedt
3de66af55c
Use one core with the compiler by default (#1114) 2023-03-02 13:51:22 -08:00
Daniel Markstedt
282c639438
Netatalk: Configure atalkd to use piscsi_bridge by default
- Inject piscsi_bridge into atalkd.conf if in use (#1088)
- Pass more parameters to the Netatalk script (cores, headless, no make clean, no packages)
- Bump to Netatalk 2.x 230202
2023-02-27 14:26:30 -08:00
Tony Kuker
059a31ba53
add special option for pi-gen for building piscsi images (#1107)
Co-authored-by: Tony Kuker <akuker@gmail.com>
2023-02-26 20:29:32 -06:00
Daniel Markstedt
4d9d90aaa5
Bump Netatalk version to 2.230201 (#1093) 2023-02-05 09:30:45 -08:00
Daniel Markstedt
071fdd2dd5
Move os_integration to root level (#1085)
* Move the os_integration dir from cpp/ to root level

Co-authored-by: nucleogenic <nr@nucleogenic.com>
2023-01-28 15:03:41 -08:00
Daniel Markstedt
934a66c785
Remove incorrect and unused usermod command (#1073) 2023-01-21 11:21:32 -08:00
akuker
8dec4af3b9
add gettext (#1048)
Co-authored-by: Tony Kuker <akuker@gmail.com>
2022-12-21 20:00:37 -06:00
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