# gallery.badmanners.xyz Static website built in Astro + Typescript + TailwindCSS. ## Requirements - Node.js 20+ - LFTP, for remote deployment script - LibreOffice, for story export script ## Development ### Setup ```bash git clone https://git.badmanners.xyz/badmanners/gallery.badmanners.xyz cd gallery.badmanners.xyz npm install && npm run astro -- sync ``` ### Local development ```bash npm run dev # Start development server (quit with Ctrl-C) npm run astro -- sync # Rebuild types from src/content/ files npm run prettier # Prettier formatting ``` ### Export story for upload Requires `libreoffice` to be installed and in your path. ```bash npm run export-story -- --output-dir ~/Documents/TO_UPLOAD slug-for-story-to-export ``` ### Build and deploy to remote ```bash npm run build ``` Then, if you're using LFTP: 1. Create a new `.env` file at the root of the project: ```env 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/ ``` 2. Run the following command: `npm run deploy-lftp` Otherwise, to deploy over SSH: `scp -r ./dist/* my-ssh-server:./gallery.badmanners.xyz/`