gallery.badmanners.xyz/README.md

58 lines
1.8 KiB
Markdown

# gallery.badmanners.xyz
Static website built in Astro + Typescript + TailwindCSS.
For attributions, see [`licenses.toml`](src/data/licenses.toml).
## Requirements
- Node.js 20+
- (optional) rsync or LFTP, for remote deployment.
- (optional) LibreOffice, for the story export script.
## Development
### Setup
```bash
git clone https://git.badmanners.xyz/badmanners/gallery.badmanners.xyz
cd gallery.badmanners.xyz
npm install
```
### Local development
```bash
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 within a `.env` file:
| Name | Type | Description |
| ---------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `APACHE_CONFIG` | boolean | If set to true, generates an `.htaccess` Apache config file at the root of the output directory. |
| `PUBLISH_DRAFTS` | boolean | If set to true, includes drafts in the production build. Published drafts still won't be directly indexed by any other pages. |
### Export story for upload
Requires `libreoffice` to be installed and in your path.
```bash
npm run export-story -- -o ~/Documents/TO_UPLOAD slug-for-story-to-export
```
### Build and deploy to remote
```bash
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:
```bash
rsync --delete-after -acP dist/ gallerybm:/home/public
```