Update: 🍻 apnscp 3.0 alpha has been released. Release notes.
I am pleased to announce that the first apnscp release, 3.0 pre-alpha, is here. This release is a limited release considered stable for personal sites and is also powering this blog, hq.apnscp.com, as well as apisnetworks.com on separate instances. No known bugs exist at this time, but further testing is necessary before giving 3.0 a final stamp of approval.
Refer to pre-alpha TR announcement for installation + tutorial
Changes over Technical Release
apnscp TR was released June 10 for early internal testing. With the help of several amazing people, TR was a great success. Bugs were squashed and all targeted features implemented. Among those 100+ commits are several important changes:
- DigitalOcean, Linode, Cloudflare DNS providers
- Bootstrapper idempotence
- Ghost + Laravel 1-click installation and update. Works with any Laravel-derived application, such as Laravel Spark
- Admin panel, add/remove/edit/suspend/activate/login-as support
- Automatic panel updates (apnscp-vars.yml => apnscp_nightly_update=true). Off by default. Use build/upcp.sh to manually update
- Improved cgroup resource enforcement
- Flexible PHP upgrades, omit patch level from apnscp-vars.yml to upgrade PHP automatically when a new release comes out
Migrating from TR to pre-alpha platforms
No migration is necessary. Update the panel, run the Bootstrapper, and update domain metadata to bring everything inline with 3.0 pre-alpha:
upcp rm -f /usr/local/apnscp/storage/cache/* cd /usr/local/apnscp/resources/playbooks env ANSIBLE_STDOUT_CALLBACK=actionable ansible-playbook bootstrap.yml cd /home/virtual for i in site* ; do EditDomain $i ; done
You can also reset apnscp's codebase to a pristine condition with
git reset --hard prior to running
cd /usr/local/apnscp git reset --hard
You can also use apnscp's builtin migration helper to transfer to a pristine platform, but it isn't necessary.
Enabling automatic updates
apnscp_nightly_update to true, then rerun Bootstrapper:
cd /usr/local/apnscp/resources/playbooks env ANSIBLE_STDOUT_CALLBACK=actionable ansible-playbook bootstrap.yml
Panel updates will be pulled nightly from Bitbucket. Bootstrapper is not explicitly run during updates yet, but can be run again same as above.
apnscp_update_bootstrapper to control whether Bootstrapper is run whenever a change is detected in its playbooks. By default it depends upon
apnscp_nightly_update. It is equivalent to
- None at this time
Implement domain/ admin/ db prefix changes in Account > Change Info Automated license dispersal artisan platform + database migration
- Improve Laravel app integration
- Upgrade Bootstrap 4 alpha-6 to final
This is a limited release with eligible users receiving a lifetime license for waiting for so long. Enjoy! Next release is alpha scheduled for late August, followed by beta + early access sale in September.