Files
sukaato-site/README.md

5.1 KiB

Sukaato

This repository is to define a backend for, and to serve, my website. The code here is building upon the basis of a project structure and associated source code supplied by the Elxir Phoenix web framework package(s)/module(s) and the associated CLI utilities.

This project is a WIP.

Execution and installation

There are a collection of procedures to follow for proper execution and installation of this server and its website. This is a highly abstract, simplified summary of the execution and installation processes. The plan is to provide more detailed exposition and more precise articulation of the execution and installation processes as the project itself is developed, as some other packages, software tools, or scripts that may be introduced may change the needed detail or precision herein. Some design approaches, structure specifications, and so on, may also have yet to be finalized.

Prerequisitess for Execution or Installation

Configure site.toml

Make sure to configure things like the website's name, author, etc., via the ${SUKAATO_SITE_SOURCE_ROOT}/site.toml file.

Supplying Resources to Themes

Make sure that subdirectories under path ${SUKAATO_SITE_SOURCE_ROOT}/priv/static/ are appropriately populated. Either follow the active/enabled theme's CSS/SASS path references, or change such path references to match custom ${SUKAATO_SITE_SOURCE_ROOT}/priv/static prefixed filepaths.

Tip

Website theme can be changed by assigning a value to theme in ${SUKAATO_SITE_SOURCE_ROOT}/site.toml.

References to paths in CSS/SASS file should be absolute paths, insofar as their root is kwown and is ${SUKAATO_SITE_SOURCE_ROOT}/priv/static. That is, they are relative to the aforementioned path, but not relative to the CSS/SASS file being currently edited.

Warning

The paths referenced in CSS/SASS files recursively under ${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/ or ${SUKAATO_SITE_SOURCE_ROOT}/assets/css/ are relative to ${SUKAATO_SITE_SOURCE_ROOT}/priv/static and not each CSS/SASS file currently being edited. This is UNLESS subdirectories of ${SUKAATO_SITE_SOURCE_ROOT}/priv/static/ have not been marked as external in ${SUKAATO_SITE_SOURCE_ROOT}/config/config.exs; in that case, the given filepaths will never be found anyway.

SASS files can be found under path ${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/themes/**/, while CSS files can be found under path ${SUKAATO_SITE_SOURCE_ROOT}/assets/css/.

Tip

Avoid editing file app.css under ${SUKAATO_SITE_SOURCE_ROOT}/assets/css/ path directly. Edit SASS files under ${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/themes/${theme_name}/ wherein $theme_name corresponds to name of enabled/active website theme. The aforementioned app.css file should be the final output starting from the preprocessing of SASS files recursively found under any subdirectory at ${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/themes/. Which subdirectory's SASS files are to be preprocessed as CSS is based on the relative imports in a symbolic link, app.sass, directly under ${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/themes/. This symbolic link should be to an export.sass file found directly under ${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/themes/${theme_name}/ corresponding to the active/enabled website theme.

The website has a default theme supplied, but you are welcome to make your own and then set it in ${SUKAATO_SITE_SOURCE_ROOT}/site.toml.

Tip

Make sure that all renderable stylesheet paths for files under ${SUKAATO_SITE_SOURCE_ROOT}/lib/sukaato_web/controllers/page_* are set to /assets/app.css, or a path relative to ${SUKAATO_SITE_SOURCE_ROOT}/priv/static that has been made external (whether the directory exists yet or not). Again, see about asset management in Phoenix web framework.

Running this project's server

This project was built using the Phoenix web framework. To start the Phoenix server:

  • Place SSL/TLS certificates in/under path /priv/cert
  • Run mix setup while at project root to install and setup dependencies
  • Start Phoenix endpoint while at project root with mix phx.server or inside IEx with iex -S mix phx.server

Now you can visit localhost:4001 from your browser.

Running this project in production

Ready to run in production? Please check Phoenix web framework's deployment guides.

Learn more