Plume is CS++'s website, written in 11ty. It is forked from Redbrick's amazing Atlas site.
Plume is designed to be more-or-less static.
The more commonly changing content (Such as Committe List, invite links, etc.) are available in src/_data/site.yml.
To add blog posts, go to 📚cs-soc-tudublin/blog. When you add a new blog post, don't forget to update the Global Blog link in src/_data/site.yml!
All images should be uploaded to /src/site/assets/img in the relevant section (Such as committee photos going to /committee). It is important that these are stored as WEBP for storage-size reasons.
The theme is managed in our universal IdentityFlip identity kit. This includes our universal graphics, styling themes, and fonts.
Plume should always adhere to the identity kit, and exceptions to this should be approved before release.
Should you need to change the structure, follow the file structure of the repository. Structural changes include modifications to the currently existing sections, header and footer, and adding sections.
To develop Plume, please ensure you have Node.JS, Yarn, and Docker installed.
Plume uses a specific version of Node. You can use Node Version Manager (NVM) to easily switch between Node versions.
- Clone the repository
git clone https://github.com/cs-soc-tudublin/Plume.git- Install the dependencies with yarn
yarn install- Run the development server
yarn run devThe development server will rebuild the site with any changes made and auto-refresh the page in your browser.
If for some reason this does not give an accurate view of the site, you can try serving it with docker.
- Create a .env file, and place the following into it
EXPOSED_PORT=[Chosen_Port_Number]- Build and start the Docker container
docker compose up -d --buildOnce the container has successfully started, navigate to localhost:[Chosen_Port_Number] to view the site.
Internally, CS++ deploys Plume automatically to its infrastructure upon a commit to the main branch. The GitHub action for this can be found in .github/workflows/deploy-to-vps.yaml.
In addition, Plume is designed to be served through a Proxy, like NGINX, and not run standalone.