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
.
For adding 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 revelant 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.
Clone the repository
git clone https://github.com/cs-soc-tudublin/Plume.git
Install the dependencies
yarn install
Run the development server
yarn run dev
The development server will grab all relevant mentioned content (Such as the blog) and build the site. Visiting the site will not give an accurate appearance of the site.
If you want to see your changes visually, you need to run the Docker image.
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 --build
Once 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.