Releases: arkOScloud/genesis
Releases · arkOScloud/genesis
v0.8.1 "Galileo"
This is a bugfix release for arkOS 0.8 "Galileo".
Genesis fixes
- b7ecf75 Fix typo preventing file manager downloads
- 24ec22e Fix bug preventing error submission to GRM
- 680fb4f Handle backup failure more gracefully
- d1f7798 Display and properly handle website updates
- d5c6e5c Fix setting user password on edit
- 57d61cb Properly display full name when no last name exists
v0.8.0 "Galileo"
- Migrate to Python 3.x (Core and Kraken)
- Full redesign and simplification using Semantic UI (Genesis)
- Serve a pre-compiled version of Genesis, removing the need for on-device builds
- Create File Shares services framework: allow automatic integration of shares and mounts for Samba, AFP and NFS
- ACME (Let's Encrypt) certificates available for request through Certificates framework
- Automatically forward ports for sites and services with your router, thanks to uPnP
- Notifications framework: send notifications to both the log, the API and the user
- WebSockets support for live notifications and model updates (Kraken and Genesis)
- Add IPv6 and HTTP/2 support by default for new websites
- Improve exception handling and logging, both inside and outside of threaded jobs
- New
arkosctl
command-line utility - Disk usage added to Statistics
- Add custom firewall rules through the interfaces
- Version checks for apps, system and language packages
- Website 'extra options' and 'actions' now generated on-the-fly in Genesis
- Use GRM to test if domains are properly assigned and ports are open/forwarded (experimental)
- Create unit testing system (experimental) and include tests for LDAP integrations
- Improved deployment through
arkosctl init
commands and default configuration - Style updates: Python to PEP8/flake and JavaScript through jslint
- Many, many bug fixes and performance improvements, and a holiday surprise!
v0.6.2
Bugfixes
- 5d5cc20 SSLv3 support removed in new websites due to POODLE vulnerability
- 6689791 User and group searches with no matches no longer fail with exceptions
- 6689791 File manager now properly evaluates UID/GID for users with capital letters in their username in Genesis
- 6689791 Websites with present metadata files but no serverblock are now ignored
- 3dd5bbd Webapp sources can now have .tgz extension
- 1808b7b Error reports now include plugin versions
Plugin Changes
- New plugins: db131a1 DokuWiki (thanks @heinzK1X!), 55b85ed Lychee (thanks @keybits!), 1110a18 Haste
- New versions: 2d58c5a Wallabag 1.8, 2801784 Ghost 0.5.2, 41b979d f8cbb7b Syncthing 0.10 (waiting on upstream package)
- c633592 [Wallabag 1.8.0-2] Properly implements SQLite3 database option; creates first user during site setup wizard
- 91e7051 [ownCloud 7.0.2-2] Update included NGINX rules for latest versions
- a89ce1e [MariaDB 2.7] Properly commit inserts when added via execute()
- 3124ade [SQLite3 2] Implement system group for access rights to databases
- 4cc12b8 [SSH 0.5] Ignore username capital letter conflicts
v0.6.1
Bugfixes
- Adding users no longer produces an error when trying to display the confirmation dialog
- Dropping databases no longer fails and will now always drop the correct database ;)
- NGINX reload failures after site edits now launch an alert rather than crashing the interface
- "Show hidden files" button no longer fails with an error if the user is in Anonymous mode
- First Run wizard no longer fails if cron or sudo aren't reachable right away
- Database user change permission dialog now properly closes and shows database lists
- Website metadata is now properly moved/edited on site changes
- First Run now forces logout on completion, evading various bugs including when using SSH plugin during the first session
- Group edit dialog now properly saves changes
- Networking, Databases and System Monitor panes no longer randomly crash when certain values aren't available
- Firewall plugin no longer randomly crashes when certain plugins are uninstalled
- Settings entered for Certificates (keytype and length) are now properly saved for use during the same session
- Websites pane Update function no longer causes crashes when used with certain site types
server_names_hash_bucket_size
value of NGINX config now editable via the Settings dialog in Websites pane- Reverse Proxy sites no longer throw various errors when attempts made to remove them
- Hardware identification on boot no longer crashes on certain platforms
- Certificate info dialog no longer complains of missing value in list
v0.6 "Panoply"
Core Updates
- Complete redesign and restructuring of application's visual interface; including new tables, menus and widgets, and redesign of First Run wizard
- Applications transitioned to "App Store", organized by categories and showing logos/screenshots where applicable
- Supervisor services framework integrated into core: Operate and control Supervisor services from the Services pane, just like for regular system services
- App installs/uninstalls/verifications are now smoother and executed more efficiently
- App installs and uninstalls will now install/uninstall all required dependency apps as necessary
- Help subsystem: display a custom help page for each plugin/framework currently being used (actual contents coming soon)
- Filesystems
- Filesystems, both regular and encrypted, are now generated much faster
- Allow user customization of default filesystem encryption methods
- File Manager
- Redesign and addition of new options in toolbar
- Added "Go" menu to quickly jump between important HD locations ("Points of Interest")
- Allow opening of text files in Notepad by clicking the file name
- Certificates
- Improved speed for certificate generation and assignment
- Display additional info about certificates and keys, including SHA1 and MD5 fingerprints
- Certificates are now created with group access rights for the system
ssl-cert
user, allowing apps to access them properly
- Websites
- Allow one-click updates for websites that don't know how to update themselves
- Databases now created in the backend rather than from plugin code itself
- Websites that support multiple database types now offer the choice to the user as to which to use on install
- Set file upload limits from within the app
- Databases
- Allow upload SQL file to database and download SQL file as backup
- Updates to SQL execution display
- Additional First Run options and system information for Cubieboard2 and Cubietruck
- Create option on bug report page for automatically sending in bug reports to Genesis developers
- Most system information calls in Statistics, Services, Task Manager and Filesystems moved from shell calls to Python psutil
- Moved to Core: Notepad, Packages, Scheduled Tasks, Supervisor, Task Manager, Terminal
- Removed Logs plugin in favour of revamped Notepad plugin
- Updates to frameworks that Genesis uses regularly, including Bootstrap 3, jQuery, pyte and CodeMirror
- Added Font Awesome as a possible choice for in-app icons
- Some sections now allow the "Enter" button to advance rather than requiring a click to "OK" or "Next" etc.
- Many alert messages have been clarified, both in appearance and language used
App Updates
- Added File Sync app: based on Syncthing, an open-source replacement for BitTorrent Sync
- Added Mumble Server and Etherpad apps (thanks @heinzK1X!)
- Added Gitweb app
- Calendar/Contacts: Improved initial setup and operation, thanks in large part to Supervisor core integration
- MariaDB & SQLite3: Functional updates to how database queries are executed and displayed
- Mailserver: Database backend moved to SQLite3, resulting in significant performance improvements
- Transmission: allow editing of all configuration file options
- Basic Website: improve database selection, creation and install process
- All webapps updated to latest versions
- Removed Execute app in favour of Terminal
- Removed Advanced Users app and migrated some features into core Users pane
Bugfixes
- Logouts now function properly
- Filesystems can now be properly and consistently mounted/unmounted
- Improvements to synchronous status message system, fixing disappearing alert messages after a few seconds
- All services, regardless of running state, now properly show in the Services pane
- Buttons and other elements behind generated tooltips are no longer blocked from access once the tooltips disappear
- Scrolling to top now works properly in additional browsers
- Packages plugin now properly posts its status information to messages instead of saying nothing
- All website types can now be properly removed without giving list index errors
v0.5.1
Core Updates
- Filesystems overhaul
- Filesystems plugin moved to Core
- Allows creation of regular and encrypted file containers
- Points of Interest (POI) framework
- Records locations of file containers, mounts
- Lays groundwork for future integration into File Manager and Webapps frameworks
- Language Assistants API
- Allows creation of helper plugins to streamline common operations per language, global installs of prerequisites, etc
- Architecture and board type is now tracked and identified via a mechanism on startup
- Webapps: HTTP hits to sites on standard ports (80/443) now redirect to HTTPS when SSL is enabled
- Webapps can be installed via git clone or unzipping ZIP archives
- Created framework to ease communication and passing orders between non-core plugins
- Date and time formats now customizable via the Genesis Settings plugin
- Widget added to track temperature in the System Monitor (Raspberry Pi only)
Plugin Updates
- ownCloud can now be installed to custom data directories and POIs
- Ghost blogging webapp plugin added
- Calendar/Contacts server plugin (Radicale) added
- Supervisor process control plugin added
- XMPP chat server (Prosody) plugin added
- SparkleShare file hosting system plugin added
- Wallabag RSS reader webapp plugin added
- Reverse Proxy webapp plugin added
- Language assistant plugins added for PHP, Ruby, Python, NodeJS
- Miscellaneous updates and edits to ownCloud, WordPress, MariaDB, Jekyll, Basic Site
Bugfixes
- Plugins can now be removed without throwing errors during validation checks
- An old reference to a PHP config file that caused errors when starting Nginx has now been completely removed
- The Networking plugin no longer crashes when using OpenVPN tunnels
- Installing Python modules doesn't fail as spectacularly
- Certificates can now be assigned/unassigned if there was an error assigning/unassigning prior
- System time is now properly set when using the button in System Settings
- System time is now properly checked for when Genesis starts
- Webapp package downloads now properly raise errors if an HTTP error is encountered
- Downloading the plugin list on boot now properly returns errors if they are encountered
- Networking plugin only greps for IPv4 address instead of failing sometimes if an IPv6 one was found too
- SSL certificates are now properly signed by the generated certificate authority
- Names for SSL certificates are now properly checked for forbidden characters before generation/assignment
- Certain names including the word "test" can now be used with Jekyll and Basic sites
- Networks that are enabled in the Networking plugin are now more clearly distinguished
- Errors are no longer thrown when a user tries to log out when they are in Anonymous mode
v0.5
Core Updates
- File Manager plugin overhaul
- File Manager plugin moved to Core
- Allows upload/download of files from the browser window
- Upload/download of folders from browser window, to and from archive formats (.tar.gz, .zip, .tar.bz2, etc)
- Hide hidden files by default, show/hide with push of a button
- Directories can now be added absolutely and recursively
- Certificates plugin
- Allow upload of externally-purchased SSL certs
- Generate certificate authority (CA) and allow to download
- Allow custom key lengths and types
- Better field validation
- Major overhaul of plugin metadata infrastructure, access and management (in preparation for future updates)
- Change reposerver API to interact in JSON, and removed unnecessary string evaluations to improve security
- Network plugin overhaul: field verification, improved code, improved error handling, and simplified interface
- Move system options to new System Settings page. Allow for management of Beacon and Logrunner, change hostname and timezone, etc
- System time management: Check for time continuity on startup, see time difference on System Settings page and force check
- Database plugin now allows setting of root passwords for database engines that allow this. DB operations must now be done after a successful login, and root passwords must be set on first use
- Improved field and naming verification in the Databases plugin
- Created python-nginx module for parsing serverblocks, and switched Webapps plugin to use it, resulting in performance and reliability improvements on adding/editing sites
- Improved field and naming verification in the Webapps plugin, integrated it with new updates to the Database plugin (root logins), use the locally-understood hostname as default site address, and allowed adding sites based on subdomain
- Updated JS/AJAX to more easily allow file uploads in plugins and core
- Log plugin list retrieval errors with reasons
- Prompt to remove the home folder when user is removed
- Prompt the user to stay on the Genesis webpage if they try to close it in their browser while an operation is taking place
- Security rule processing is done on boot instead of on first page load, reducing wait time
- Password verification added in JS
- Improved fetching status message queue and displaying of messages
- Improved logging of core login attempts, and added fail2ban rules for Genesis, manageable via Security plugin
- Services can now be enabled/disabled from the Status buttons of ServiceControlPlugins
- Show only the last 50 lines of action in bug reports, to improve accessibility and reduce spam
- Updated PHP plugins to use xCache instead of APC in keeping with Arch convention
- Python modules are now installed if they are missing (reload still needed to use them, though)
- Login screen has a new colour and logo
Plugin Updates
- MariaDB plugin now uses Python MySQL plugin instead of using shell calls
- SQLite3 plugin now uses Python SQLite3 plugin instead of using shell calls
- Custom websites now added via the "Basic Website" plugin
- Basic Websites: PHP sites based in "htdocs" subfolder
- Samba plugin: removed obsolete options, simplified interface and operation
- Transmission plugin: RPC-whitelist option can now be edited
Bugfixes
- Naming conflicts are now correctly captured in the Webapps, Databases, and Certificates plugins
- Network plugin fields will no longer randomly throw errors (due to better field validation and read testing)
- Package Manager plugin now uses separate UIs for each tab, making Search function more intuitive
- SQL execution via the Databases plugin now properly formats errors in the execution dialog
- First Run wizard no longer allows forbidden characters in user creation
- Password updates no longer need to be effectuated by clicking the evil little green checkmark
- ownCloud plugin now enables the proper PHP modules when a new site is installed
- ownCloud plugin now does not throw errors on use of xCache
- ownCloud custom SSL certificate is now added to ca-certificates when generated
- Webapps plugin no longer crashes if a site wasn't expected to have SSL but does
- Time is now more reliably checked in the Certificates plugin when generating an SSL cert
- SSH plugin no longer crashes on every little significant thing (like unexpected usernames)
- Certificates plugin now no longer (occasionally) fails to generate a second certificate
- Disk usage widget only has one line named "Total" now instead of two
- Reload/restart terminology has been clarified, once again
- Scripts and stylesheets from core loaded first before those from plugins
v0.4.1
Bugfix Release
- FIXED: When a plugin is removed, it is now immediately removed from the Applications list (a refresh is still required before it is removed from the sidebar)
- FIXED: The First Run wizard now checks for plugin dependency and conflict like the Applications manager does
- FIXED: The Settings page no longer shows SSL options, requiring users to go through the new Certificates framework, to reduce confusion and errors
- FIXED: The Package Manager plugin no longer allows checking Info of packages that are not installed (limitation of pacman)
- FIXED: The user created during the First Run wizard is now properly added to the
sudo
group - FIXED: Custom websites added with the PHP flag now properly have PHP enabled
- FIXED: If a System Monitor widget encounters an error while loading, it can now be removed via a "Clean Up" button that appears
- FIXED: Automatic resizing of the SD card now works (for real this time!)
- FIXED: The WordPress plugin no longer comments out the keys obtained via the WP API
- FIXED: Changing SSH options now properly restarts the SSH daemon
- FIXED: The embedded webapp functionality (like Transmission uses) now properly redirects to HTTP/HTTPS depending on app settings and Genesis SSL status
- FIXED: The "Generate Certificate" form no longer bothers with an error if the form is cancelled
- FIXED: The terms "reload", "restart" and "reboot" in various functions of Genesis have been revised and clarified
v0.4
Core Updates
- Security API/Framework completed:
- Enables a configurable firewall, blocking traffic by default and only allowing through the services that you need
- Allow services to be available the entire Internet, only to your local area network, or to nobody at all
- Enables a defence system (Fail2ban) for individual plugins that allows intrusion attempts to be detected and mitigated
- Certificates API/Framework completed:
- Allows the generation and management of self-signed SSL certificates
- Automatically assign an SSL certificate to a plugin or a webapp, enabling SSL on that service
- Long-running processes can now display status messages instead of the stock loading spinner
- Plugin and webapp installation displays status messages during installation
- Plugins with associated running services (daemons) now feature a button for easy access to start/stop/restart
- Plugins with associated web applications to manage them can now have a redirect in Genesis
- Webapps Framework Updates:
- Integration with Security framework: webapp ports are automatically registered to the firewall
- Integration with Certificates framework: SSL enabled when a certificate is provisioned for a specific webapp. Custom actions can occur for SSL enable/disable depending on webapp type
- More detail given to user confirmation before dangerous operations
- Config option added to reduce RPi memory split
- Root password can now be set via the First Run wizard
Plugin Updates
New plugins to manage:
- Jekyll static site and blog generator
- Transmission BitTorrent client (thanks @wwilson!)
Other changes:
- Executing commands via Shell plugin is now done as the logged-in user and not root
Bugfixes
- Fixed: Applications pane will now stop you if you try to install a plugin before its dependency, or to remove it while others depend on it
- Fixed: Webapps pane will now stop you from installing a webapp if it requires a database service that is not running
- Fixed: SSL can now be properly enabled in Genesis
- Fixed: Disk resizes properly take effect after the first run
- Fixed: Custom website installs via the Webapps plugin work now
- Fixed: Webapps can now have their name changed and still work
- Fixed: Samba plugin now has basic functionality (has not been reviewed yet, though)
- Fixed: Users created through the First Run wizard and user plugins now have home directories and control over them
- Fixed: Shebangs are now properly rewritten in all modules
v0.3
Core Updates
- Webapps API/Framework completed:
- Add and remove websites, automatically downloading from source and formatting as necessary
- Automatically generate nginx serverblocks based on given information
- Activate and serve new sites on-the-fly
- Manage nginx and PHP server processes when needed
- Modular framework for easily adding and managing new webapp types
- Databases API/Framework completed:
- Add and remove databases
- Add, remove and modify permissions for database users
- Execute database commands
- Modular framework for easily adding new database types in the future
- In-App updates:
- When an update is detected, the app will display a message
- Updates can be installed from the Config menu automatically
- Can manually check for new updates
- Performance greatly improved for Services plugin
- Plugins stand out more when they cannot be activated at runtime
- Plugin dependency checks are faster and less resource-intensive
- HTTP requests no longer printed to logfiles, to lessen logspam
- User created in First Run wizard now automatically a sudoer
- Users given the option to purge server data associated with dependencies on app removal
Plugin Updates
New plugins to manage:
- MariaDB/MySQL databases
- SQLite3 databases
- Wordpress installations
- ownCloud installations
- Custom Website installations
Other changes:
- SSH plugin performance and accuracy improved
- DNS and Hosts plugins removed, merged into core Networking plugin
Bugfixes
- Fixed: only remove plugin dependencies on removal if the plugin is the last one that requires those dependencies
- Fixed: Terminal plugin responds to keypresses once again (thanks @explorigin)
- Fixed: news widget articles were not sorted by date
- Fixed: the system monitor no longer crashes when a widget raises an exception; the exception is logged and the widget is disabled
- Fixed: dotted-line widget handle shows up again
- Fixed: issuing multiple modify/delete calls in one AJAX session blacked the screen and/or gave wrong results
- Fixed: Network plugin widget no longer crashes on empty lines