FMHY-Website/docs/other/selfhosting.md
2025-05-19 23:13:09 +00:00

126 lines
3 KiB
Markdown

---
title: Selfhosting FMHY
description: This guide will help you set up and run your own instance of FMHY locally.
---
# Selfhosting
This guide will help you set up and run your own instance of FMHY locally.
:::warning
Do note that you **must** differentiate your instance from the official site (fmhy.net) to avoid confusion. Steps to do so are given below.
:::
#### Prerequisites
### Docker (Experimental)
You will need to install Docker and Docker Compose run your own instance of FMHY locally.
- [Docker](https://docs.docker.com/get-docker/)
- [Docker Compose](https://docs.docker.com/compose/install/)
After installing Docker and Docker Compose, run the following commands:
```bash
git clone https://github.com/fmhy/edit.git
cd edit
sudo docker compose up --build
```
It should take a few minutes to build the image and start the container, running at port 4173.
### Manually
- [Git](https://git-scm.com/downloads)
- [Node.js](https://nodejs.org/en/download/) - Use the latest available LTS, doesn't matter much
- [pnpm 9.12.2 or newer](https://pnpm.io/installation)
#### Step 1: Clone the Repository
```bash
git clone https://github.com/fmhy/edit.git
cd edit
```
#### Step 2: Install Dependencies
Install project dependencies using pnpm:
```bash
pnpm install
```
#### Step 3: Development Mode
To run the project in development mode:
```bash
# Start the documentation site in dev mode
pnpm docs:dev
# Start the API in dev mode (if needed)
pnpm api:dev
```
The development server will start at `http://localhost:5173` by default.
#### Step 4: Building for Production
You will need to update:
- the `meta` constant in `docs/.vitepress/constants.ts`
- `name`: Name of your instance
- `hostname`: Your domain
- `description`: Description of your instance
- `tags`: Opengraph tags
- `build`: Build options (can be configured with [Environment Variables](/other/selfhosting#environment-variables))
- `docs/index.md`
- `title`
- `description`
- `hero.name`
- `hero.tagline`
To build the project for production:
```bash
# Build the documentation site
pnpm docs:build
# Build the API (if needed) using the Node.js preset
NITRO_PRESET=node pnpm api:build
```
#### Step 5: Preview Production Build
To preview the production build locally:
```bash
# Preview the documentation site
pnpm docs:preview
# Preview the API (if needed)
pnpm api:preview
```
#### Step 6: Deploy
See the [VitePress deployment guide](https://vitepress.dev/guide/deploy) for more information.
#### Environment Variables
You may want to disable NSFW content (sidebar entry, page contents) and/or the API component for Feedback:
- `FMHY_BUILD_NSFW` - Disables NSFW content (experimental)
- `FMHY_BUILD_API` - Disables the API component
#### Troubleshooting
1. If you encounter Node.js version issues, ensure you're using Node.js 21+
2. For pnpm-related issues, make sure you're using pnpm 9+
3. Clear the cache if you encounter build issues:
```bash
rm -rf docs/.vitepress/cache
rm -rf docs/.vitepress/dist
pnpm install
```