Full-Stack Web-App тти AnimeLayer.ru
- go
- a-h/templ + htmx + htmx websocket + tailwind
- postgresql + sqlc
- go-i18n
- air
- tailwind cli
- goose
- taskfiles
- go-stringer
- Host on free serv00 with auto-deploy via github actions
- Chron (scheduler configuration serv00 web panel) auto-update with parsing AnimeLayer each hour
- Add presentation with htmx based on v0.dev generation
- Implement AnimeLayer parser in separate repository
- Initialize postgresql with goose migrations
- Make endless scroll pages with filtering via query parameters
- Add string russian translation with goi18n
- Add (created fork) tool to generate enums with stringer, parser and consts as id for goi18n
- Improve goi18n to correctly lookup consts in other files (fork, pull request)
- Host on free serv00 with auto-deploy via github actions
- Add settings page with lang and theme selection
- Add colors for dark theme
- Init dark theme detectable from the light
- Align all colors for dark-contrasts
- Implement auto-update from AnimeLayer vith chron
- Add notification with tg bot api
- Improve filtering to use some key words from notes (genre, year etc)
- Add connection to MyAnimeList
- Profile page
- OAuth with Telegram
assets
- anything that might requie in runtime (CSS, images etc)
langlang/translations
- folder to store localized strings as i18n toml files
build
- should contain dockerfiles and other files requied in build-stage
cmd
- inheret from clean architure folder for executable applications
internal
- inheret from clean architure folder
pkg
- inheret from clean architure folder
components
- folder with a-h/templ template files
handlers
- folder with front-end handlers routing
migrations
- sequence migration files to initialize postgres with goose
task dev
TODO
task tailwind:prod
task pre-build-prod
task build-freebsd-amd64
Reuied secrets for git hub action
- FTP_SERVER
- FTP_USER
- FTP_PASSWORD
- SSH_HOST
- SSH_USER
- SSH_KEY - raw private ssh-key (password not work for me)
- SSH_PORT - by default it`s 22
serv00 using freebsd on free servers so docker is not an option.
So I crafted restart.bash in root of ssh (or ftp):
pkill -f ./server
rm -f repo/gosudarevlist/server
mv server repo/gosudarevlist/server
cd repo/gosudarevlist
chmod 777 server
It trigger from GitHub Actions on push after upload builded for freebsd amd64 server.