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
Getting help
I will be available to work with you if you run into any issues. Drop me an email at matt@apisnetworks.com, post on /r/apnscp, hop on Discord, or even too the KB.
Features/bugs
Use Bitbucket or GitHub for feature and bug tracking.
Any in-transit issues are resolved as encountered and pushed upstream. upcp will bring your instance current.
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 upcp
.
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
Edit /root/apnscp-vars.yml
, set 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.
Optionally set 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 upcp -a
.
Known issues
- None at this time
Pending enhancements
Implement domain/admin/db prefixchanges in Account > Change InfoAutomated license dispersalartisan platform + database migration- Improve Laravel app integration
- Upgrade Bootstrap 4 alpha-6 to final
- Documentation
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.