Skip to content

haxtheweb/HAXiam

Repository files navigation

#HAXTheWeb

I AM..

The two most powerful words to follow that which represents you. Your image in the world. Your voice. Your ability to set your own agenda. Not who others say you are. Not who WE are, but who I am. We empower individuals to have their own voice, their own platform, be whoever they need to say they are in the world.

Code

This is a packaging wrapper for HAXcms to to allow anyone to spawn their own microsite management platform. The intention is that HAXcms microsites can be published to the publishing directory. This directory can define multiple forms of publishing endpoint, all of which are static HAXcms microsites.

This is not container based and is instead closer to a WordPress / Drupal concept known as "multi-site" where all of the code is pegged to one code base.

Advantages

  • Easy to maintain, upgrade 1 package in 1 location, everything is upgraded to match
  • Upgrade all sites at the same time
  • Everything under one directory tree
  • Single sign on documented for Azure AD / OpenIDConnect

Disadvantages

  • Scale (theoretically..) however this is mitigated by everything being static files with minimal PHP endpoints
  • Security (technically write access to one is write access to all at server level, application manages access)
  • Upgrading 1 site means upgrading all sites (some people want them to be locked in time for stability)

Quick installation

curl -fsSL https://raw.githubusercontent.com/haxtheweb/HAXiam/master/scripts/install/ubuntu26.04.sh -o ubuntu26.04.sh && sh ubuntu26.04.sh

Installation

There are install scripts for Ubuntu 20, 22, 24, and 26. You can invoke it as follows

bash scripts/install/ubuntu26.04.sh

Configuration

After installation make sure you review the files created in the _config/ directory. These files are commented heavily as to what they do. You can see the two main ones under system/boilerplate/systemsetup but let the system install so that you can modify them in the appropriate location.

Organization-wide skeletons (shared templates)

HAXiam supports shared skeleton templates for all users through a centralized organization directory:

  • Shared org templates: _iamConfig/skeletons
  • User-private templates remain in each user's own config space

Skeleton resolution order is:

  1. users/<username>/_config/user/skeletons (private user skeletons)
  2. users/<username>/_config/skeletons (user instance skeletons)
  3. _iamConfig/skeletons (organization-wide shared skeletons)
  4. cores/HAXcms-1.x.x/system/coreConfig/skeletons (core defaults)

This preserves private user-created templates while allowing admins to publish templates to everyone.

Version-control workflow for shared skeletons

Recommended pattern: manage _iamConfig/skeletons as its own Git repository (or a submodule) so teams can push/pull template updates without versioning sensitive _iamConfig files.

  1. Create a repository for shared skeleton JSON files (example: haxiam-skeletons).
  2. Clone it into _iamConfig/skeletons in your HAXiam deployment.
  3. Add/update *.json skeleton files, commit, and push.
  4. On each HAXiam deployment, run git pull in _iamConfig/skeletons to deploy template updates for all users.

If you prefer tracking this in the main HAXiam repository, update .gitignore carefully so only _iamConfig/skeletons is versioned and other _iamConfig files remain ignored.

About

The two most powerful words... unleashing a world of self publishing.

Topics

Resources

License

Stars

Watchers

Forks

Contributors