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.
Note
Not only is this a WIP, but this project is the first time I've ever used the Elixir programming language. As of yet, the source code is not written idiomatically.
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.
Supply 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.
References to paths in CSS/SASS file should be absolute paths, insofar as their root is known 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 such CSS/SASS file currently being edited. This is UNLESS subdirectories of${SUKAATO_SITE_SOURCE_ROOT}/priv/static/
have not been marked as external for/to:esbuild
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 aforementionedapp.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 anexport.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. Website theme can be changed by assigning a value to theme
in ${SUKAATO_SITE_SOURCE_ROOT}/site.toml
, so set it there once made.
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) for/to:esbuild
. Again, see about asset management in Phoenix web framework.
Supply Resources for Pages
TBC This section is unfinished. Check back later.
Run the 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
- Make sure
config.exs
,dev.exs
, orprod.exs
reflect the paths to these certificates
- Make sure
- 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 withiex -S mix phx.server
Now you can visit localhost:4001
from your browser.
Run this project in production
Ready to run in production? Please check Phoenix web framework's deployment guides.