Auto-hospedagem
WARNING
Observe que você deve diferenciar sua instância do site oficial (fmhy.net) para evitar confusões. As etapas para fazer isso são fornecidas abaixo.
Este guia ajudará você a configurar e executar sua própria instância do FMHY localmente.
Docker (Experimental)
Para executar uma instância local, você precisará instalar o Docker e o Docker Compose.
Após instalar ambos, execute os seguintes comandos:
git clone https://github.com/fmhy/edit.git
cd edit
sudo docker compose up --buildPode levar alguns minutos para construir a imagem e iniciar o contêiner, que será executado na porta 4173.
Nix Flake
Você pode usar o nix para configurar um ambiente de desenvolvimento, temos um flake que configura o nodejs e o pnpm.
- Faça um fork do repositório e clone-o para sua máquina local com
git clone https://github.com/fmhy/edit.git. - Execute
nix flake updatepara atualizar o arquivo de bloqueio do flake. - Execute
nix developpara entrar no ambiente de desenvolvimento. - Faça suas alterações.
- Saia do ambiente de desenvolvimento executando
exit.
Manualmente
Você precisará instalar o seguinte:
- Git
- Node.js - Instale a versão 21.7.3
- pnpm 9.12.2+
Passo 1: Clonar o Repositório
git clone https://github.com/fmhy/edit.git
cd editPasso 2: Instalar Dependências
Instale as dependências do projeto usando pnpm:
pnpm installPasso 3: Modo de Desenvolvimento
Para executar o projeto no modo de desenvolvimento:
# Inicie o site de documentação no modo dev
pnpm docs:dev
# Inicie a API no modo dev (se necessário)
pnpm api:devO servidor de desenvolvimento será iniciado em http://localhost:5173 por padrão.
Passo 4: Construção para Produção
Você precisará atualizar:
meta: Constante emdocs/.vitepress/constants.tsname: Nome da sua instânciahostname: Seu domíniodescription: Descrição da sua instânciatags: Tags Opengraphbuild: Opções de construção (podem ser configuradas com Variáveis de Ambiente)
docs/index.mdtitledescriptionhero.namehero.tagline
Para construir o projeto para produção:
# Construa o site de documentação
pnpm docs:build
# Construa a API (se necessário) usando o preset Node.js
NITRO_PRESET=node pnpm api:buildPasso 5: Pré-visualização da Construção para Produção
Para pré-visualizar a construção para produção localmente:
# Pré-visualize o site de documentação
pnpm docs:preview
# Pré-visualize a API (se necessário)
pnpm api:previewPasso 6: Implantação
Consulte o guia de implantação do VitePress para mais informações.
Implantação da API
Se você quiser implantar o componente API (sistema de feedback), precisará configurar os Workers e o armazenamento KV do Cloudflare.
Pré-requisitos
- Uma conta Cloudflare
- Wrangler CLI instalado globalmente
Passo 1: Configurar o Wrangler
Atualize wrangler.toml com as informações da sua conta Cloudflare:
- Obtenha seu ID de conta no painel do Cloudflare (encontrado na barra lateral direita)
- Substitua o valor
account_idemwrangler.tomlpelo seu ID de conta - Se você estiver usando um domínio personalizado, mantenha
workers_dev = falsee atualize a seçãoroutes - Se você estiver implantando em
*.workers.dev, definaworkers_dev = truee remova a seçãoroutes
Passo 2: Criar Namespace KV
Crie um namespace KV para armazenamento de dados:
npx wrangler kv:namespace create STORAGEEste comando retornará um ID de namespace. Copie este ID e substitua o valor id na seção [[kv_namespaces]] de wrangler.toml (linha 14).
Nota: Se você quiser implantar sem executar o Wrangler localmente (por exemplo, em CI/CD), você precisará:
- Criar o namespace KV manualmente no painel do Cloudflare
- Atualizar os valores
account_ideidemwrangler.tomlno seu fork
Passo 3: Construir e Implantar
Construa e implante a API:
# Construa a API
pnpm api:build
# Implante no Cloudflare Workers
pnpm api:deployA API será implantada no seu domínio configurado ou subdomínio *.workers.dev.
Limitação de Taxa (Opcional)
A vinculação do limitador de taxa requer configuração através do painel do Cloudflare. Você pode pular isso para implantações básicas ou configurá-lo posteriormente no painel de Workers na seção "Limitação de taxa".
Variáveis de Ambiente
Variáveis de Tempo de Construção (para Documentação)
Essas variáveis controlam o que é incluído ao construir o site de documentação:
FMHY_BUILD_NSFW- Habilitar entrada NSFW na barra lateral (experimental)FMHY_BUILD_API- Habilitar componente API para sistema de feedback
Variáveis de Tempo de Execução (para Trabalhador de API)
Essas variáveis são usadas pela API do Trabalhador Cloudflare implantada:
WEBHOOK_URL- URL do webhook do Discord para postar mensagens de feedback (necessário para a funcionalidade de feedback da API)
Solução de Problemas
- Se você encontrar problemas com a versão do Node.js, certifique-se de que está usando o Node.js 21+
- Para problemas relacionados ao pnpm, certifique-se de que está usando o pnpm 9+
- Se você encontrar problemas de construção, tente limpar o cache:bash
# Linux rm -rf docs/.vitepress/cache # PowerShell rm -r -fo docs/.vitepress/cache
Proxy Reverso
Você deve ser capaz de usar qualquer proxy reverso com este site vitepress, mas encontre uma configuração razoável para um servidor nginx no repositório aqui