Source code for my gallery webpage. https://gallery.badmanners.xyz
Find a file
2024-08-16 16:23:55 -03:00
.vscode Several minor improvements to typing and misc. 2024-08-07 19:31:38 -03:00
examples Several minor improvements to typing and misc. 2024-08-07 19:31:38 -03:00
public Make Apache config optional and add h-feed support 2024-08-16 16:23:55 -03:00
scripts Make Apache config optional and add h-feed support 2024-08-16 16:23:55 -03:00
src Make Apache config optional and add h-feed support 2024-08-16 16:23:55 -03:00
.gitignore Migrate deploy-lftp script to tsx 2024-07-18 19:18:09 -03:00
.prettierignore Add Mastodon comments and remove date-fns dependency 2024-03-27 11:54:18 -03:00
.prettierrc.mjs Fix up first version and add Prettier and Docker 2024-03-20 11:34:09 -03:00
astro.config.mjs Make Apache config optional and add h-feed support 2024-08-16 16:23:55 -03:00
LICENSE.md Several minor improvements to typing and misc. 2024-08-07 19:31:38 -03:00
package-lock.json Make Apache config optional and add h-feed support 2024-08-16 16:23:55 -03:00
package.json Make Apache config optional and add h-feed support 2024-08-16 16:23:55 -03:00
README.md Make Apache config optional and add h-feed support 2024-08-16 16:23:55 -03:00
tailwind.config.mjs Add Mastodon links to new stories, add title texts, and improve tags 2024-07-23 17:12:54 -03:00
tsconfig.json Several minor improvements to typing and misc. 2024-08-07 19:31:38 -03:00

gallery.badmanners.xyz

Static website built in Astro + Typescript + TailwindCSS.

Requirements

  • Node.js 20+
  • (optional) rsync or LFTP, for remote deployment.
  • (optional) LibreOffice, for the story export script.

Development

Setup

git clone https://git.badmanners.xyz/badmanners/gallery.badmanners.xyz
cd gallery.badmanners.xyz
npm install

Local development

npm run dev       # Start development server (quit with Ctrl-C)
npm run sync      # Rebuild types from Astro config and src/content/ files
npm run prettier  # Prettier formatting

Configuration

The following optional environment variables can be set with .env:

Name Type Description
APACHE_CONFIG boolean Whether to generate an .htaccess Apache config file at the root of the output directory or not.

Export story for upload

Requires libreoffice to be installed and in your path.

npm run export-story -- -o ~/Documents/TO_UPLOAD slug-for-story-to-export

Build and deploy to remote

npm run build

Then, if you're using rsync, after configuring the gallerybm host (or the name of your choosing) in ~/.ssh/config, you can use a command like:

rsync --delete-after -acP dist/ gallerybm:/home/public

Or if you prefer LFTP, create a .env file at the root of the project:

DEPLOY_LFTP_HOST=https://example-webdav-server.com
DEPLOY_LFTP_USER=example_user
DEPLOY_LFTP_PASSWORD=sup3r_s3cr3t_password
DEPLOY_LFTP_TARGETFOLDER=sites/gallery.badmanners.xyz/

Then run npm run deploy-lftp.