Documentação: versão em inglês |
anúncio
Agradecimentos especiais
introdução
Efeito
Prepare-se com antecedência
Configure a função de entrega de mensagens (suporta entrega de e-mail/Telegram Bot/Enterprise WeChat/Server Sauce/Bark e outros métodos de entrega de mensagens)
Implantar via Docker Compose
Implantar via Docker (recomendado, um dos métodos de implantação mais simples)
Implantar via Heroku
Implantar via ferrovia
Implantado através do Koyeb (recomendado para usuários que não possuem servidor próprio para usar esta solução, implantação com um clique)
Implantar via Mogenius (não é mais possível)
Implantado por meio de várias funções de nuvem (atualmente cada plataforma ativou o modo de carregamento e desistiu do suporte)
Extraia diretamente o código-fonte para implantação
Lista de doações Lista de doações
Doação do Patrocinador
Crença
autor
Todos os colaboradores
Lista de tarefas
Outras implementações de linguagem deste projeto
Agradecimentos
Contrato de código aberto
Freenom 续期事务局
para comunicação, testes e feedback. Para participar, você pode visitar diretamente https://t.me/freenom_auto_renew ou digitalizar o código QR para participar:Agradecemos à JetBrains por fornecer uma licença de desenvolvimento de software de código aberto não comercial.
Obrigado pela autorização de desenvolvimento de código aberto não comercial da JetBrains.
Como todos sabemos, a Freenom é o único comerciante do planeta que fornece nomes de domínio de primeiro nível gratuitos, mas estes precisam de ser renovados anualmente, sendo cada renovação de até um ano. Como solicitei vários nomes de domínio e eles não foram solicitados ao mesmo tempo, cada renovação era um incômodo, então escrevi este script de renovação automática.
Independentemente do sucesso ou fracasso da renovação ou de erro na execução do programa, você receberá uma notificação do script. Se for uma notificação relacionada ao sucesso ou fracasso da renovação, a notificação incluirá os dias de expiração do nome de domínio não renovado e outros conteúdos. Aqui é mostrado o conteúdo do e-mail de notificação.
Debian
é recomendado. A versão PHP
deve ser php7.3
ou superior. Se você possui um ambiente Docker
, pode ignorar esta restrição. Se você não tiver um servidor, poderá consultar este documento para implantar em vários ambientes gratuitos.Gmail
, QQ邮箱
, 163邮箱
e Outlook邮箱
, o programa determinará automaticamente o tipo de caixa de correio de envio e usará a configuração apropriada. Se você estiver usando outra caixa de correio de terceiros ou um serviço de e-mail criado por você mesmo, consulte os comentários relacionados à configuração de e-mail no arquivo .env.example para configuração.送信邮箱
收信邮箱
acima são opcionais, pois o programa atualmente suporta邮件送信
/ Telegram Bot
/企业微信
/ Server 酱
/ Bark
e outros métodos de envio de收信邮箱
estão disponíveis apenas quando送信邮箱
usa邮件送信
. . Para outros métodos de envio, consulte a configuração da função de envio abaixo. Aqui apresentaremos o método de configuração de邮件送信
/ Telegram Bot
/企业微信
/ Server 酱
/ método de entrega Bark
, bem como as informações necessárias. Você pode escolher qualquer um dos métodos de entrega para configuração e ir diretamente para o documento correspondente. para visualizá-lo. Se você é um usuário IOS, é recomendado usar o método de envio Bark
. Os usuários em outras plataformas podem escolher um método de envio aceitável de acordo com suas preferências. Não é recomendado usar o Server 酱
Server 酱
para enviar mensagens. Server 酱
tem um limite no número de mensagens enviadas por dia e você precisa ser um membro para ver diretamente o conteúdo da mensagem. website para visualizar o conteúdo Todas essas são razões pelas quais não é recomendado. A mesma configuração pode ser usada diretamente para enviar cartas via企业微信
. Ao enviar cartas via企业微信
, você pode ver o conteúdo da carta diretamente no cliente WeChat comum.
Vá rapidamente para o local especificado do documento:
Entrega de correio
Bot de telegrama
WeChat Empresarial
Molho de servidor
Entrega de casca
A seguir apresentamos as configurações do Gmail
, QQ邮箱
e 163邮箱
, respectivamente. Você só precisa olhar as partes necessárias. Observe que tanto QQ邮箱
quanto 163邮箱
usam o método de账户加授权码
para fazer login, e谷歌邮箱
usa o método de账户加密码
ou账户加授权码
para fazer login, informe-se. Também quero reclamar que para caixas de correio nacionais é preciso gastar 10 centavos para enviar uma mensagem de texto ao provedor da caixa de correio para obter o código de autorização.
(Clique para expandir ou recolher)
É recomendável ativar o modo de privacidade do navegador antes de fazer login no Gmail para configurar, para evitar a impossibilidade de acessar o endereço de configuração correto quando você tiver várias contas do Gmail.
1. Em设置>转发和POP/IMAP
, marque
Em seguida, salve as alterações.
2. Ative a verificação em duas etapas
Consulte a documentação oficial: Ative a verificação em duas etapas
3. Configure o uso de senha específica do aplicativo para fazer login no endereço de e-mail
Consulte a documentação oficial: Faça login com uma senha específica do aplicativo
Como o Gmail não oferece mais suporte a “métodos de login inseguros”, atualmente você só pode fazer login usando sua conta e uma senha específica do aplicativo.
Em设置>账户>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
, ative POP3/SMTP服务
Neste momento, a caixa de correio QQ trapaceira solicitará que você envie uma mensagem de texto para a Tencent usando seu celular. Após o envio, clique em我已发送
Então você poderá ver seu código de autorização de e-mail. Use sua conta de e-mail e código de autorização para fazer login.
Em设置>POP3/SMTP/IMAP
, habilite POP3/SMTP服务
e IMAP/SMTP服务
e salve
Agora clique na客户端授权密码
na barra lateral e obtenha o código de autorização. A tela que você vê pode ser diferente da minha, pois já obtive o código de autorização, então só existe um botão重置授权码
Aqui, você pode aplicar. para autorização de acordo com as instruções do site, NetEase é tão nojento quanto Tencent. Você precisa enviar uma mensagem de texto com seu celular para obter o código de autorização.
163 Após o envio da caixa postal, caso o destinatário não a receba, ele poderá procurá-la no spam.
Após a conclusão da ação acima, no arquivo .env
, defina MAIL_USERNAME
e MAIL_PASSWORD
como seu e-mail e senha (ou token), defina TO
como seu e-mail de recebimento e, em seguida, defina o valor de MAIL_ENABLE
como 1
para ativar a função Enviar mensagem da caixa de correio .
Os três métodos de configuração de caixa de correio são apresentados acima. Se você não quiser usar a entrega de email, altere o valor de MAIL_ENABLE
no arquivo .env
no diretório raiz para 0
para desativar o método push de email.
A parte de entrega de correspondência está concluída.
Para etapas de configuração específicas do [Telegram Bot], consulte aqui
Para as etapas de configuração específicas do [Enterprise WeChat], consulte aqui
Para etapas de configuração específicas do [Server Sauce], consulte aqui
Para as etapas de configuração específicas de [Bark Send], consulte aqui
O espaço relacionado à configuração da função de mensagens está completo. Vamos começar com várias maneiras de usar este projeto. Recomenda-se usar o método Docker sem se preocupar com o meio ambiente.
Observe que atualmente é uma versão beta e suporta apenas instalação em máquinas com arquitetura AMD64. Usuários de arm ou outras arquiteturas, por favor, sejam pacientes e aguardem as atualizações subsequentes. Ou se precisar de um servidor, você pode considerar um VPS barato nos Estados Unidos
Debian/Ubuntu (recomendado)
apt-get update -y ;
apt-get install -y wget vim git make ;
wget -qO- get.docker.com | bash ;
systemctl start docker ;
sudo systemctl enable docker.service ;
sudo systemctl enable containerd.service ;
docker version ;
DOCKER_COMPOSE_VER=2.24.3 ;
DOCKER_CONFIG=/usr/local/lib/docker ;
mkdir -p $DOCKER_CONFIG /cli-plugins ;
curl -SL https://github.com/docker/compose/releases/download/v ${DOCKER_COMPOSE_VER} /docker-compose-linux-x86_64 -o $DOCKER_CONFIG /cli-plugins/docker-compose ;
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose ;
docker compose version ;
CentOS
yum update -y ;
yum install -y wget vim make ;
wget -qO- get.docker.com | bash ;
systemctl start docker ;
sudo systemctl enable docker.service ;
sudo systemctl enable containerd.service ;
docker version ;
DOCKER_COMPOSE_VER=2.24.3 ;
DOCKER_CONFIG=/usr/local/lib/docker ;
mkdir -p $DOCKER_CONFIG /cli-plugins ;
curl -SL https://github.com/docker/compose/releases/download/v ${DOCKER_COMPOSE_VER} /docker-compose-linux-x86_64 -o $DOCKER_CONFIG /cli-plugins/docker-compose ;
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose ;
docker compose version ;
git clone https://github.com/luolongfei/freenom.git && cd freenom
3.1.1 Visite https://wit.ai
3.1.2 Faça login com uma conta do Facebook ou registre uma conta com um endereço de e-mail Você só precisa de um endereço de e-mail para se registrar.
3.1.3 Vá para a tela https://wit.ai/apps e crie um novo aplicativo
3.1.4 Selecione Inglês como idioma, qualquer nome, selecione Privado como tipo e crie-o.
3.1.5 Vá para a tela Gerenciamento > Configurações (https://wit.ai/apps//settings)
3.1.6 Copie o token de acesso do cliente O seguinte precisa ser escrito no arquivo .env, WIT_AI_KEY='Token de acesso do cliente que você copiou'.
Modifique o conteúdo do arquivo de configuração .env para sua própria configuração. Se estiver atualizando de uma versão antiga, você também pode copiar diretamente a versão antiga de .env para o diretório raiz da nova versão do projeto, e o script irá. atualizá-lo automaticamente. Para saber o significado da configuração, consulte as anotações no arquivo .env.example.
cp .env.example .env ;
vim .env ;
Após a conclusão da modificação, digite :wq
para salvar e sair.
Nota: Os comandos a seguir precisam ser executados no diretório onde docker-compose.yml está localizado para serem eficazes.
make up
Sim, é simples assim. Em seguida, você pode executar make logs
para visualizar os logs em tempo real.
Inicie ou atualize para a versão mais recente
make up
parar
make down
Veja registros em tempo real
make logs
Limpe o espaço ocupado pelos contêineres
make clear
Reiniciar contêiner
make restart
A implantação por meio da seção docker compose termina.
Se você tiver seu próprio servidor, este é o método de implantação mais recomendado.
O endereço do armazém Docker é: https://hub.docker.com/r/luolongfei/freenom Estrelas também são bem-vindas. As arquiteturas suportadas por esta imagem são linux/amd64
, linux/arm64
, linux/ppc64le
, linux/s390x
, linux/386
, linux/arm/v7
, linux/arm/v6
. Teoricamente, ela suporta群晖
,威联通
e树莓派
. E vários tipos de VPS
.
Atualize a fonte e instale o software (escolha uma das duas linhas de comandos a seguir de acordo com seu próprio sistema)
Debian/Ubuntu
apt-get update && apt-get install -y wget vim make
CentOS
yum update && yum install -y wget vim make
Execute este comando para esperar que o Docker seja instalado automaticamente
wget -qO- get.docker.com | bash
Nota: Use um VPS com arquitetura KVM. O VPS com arquitetura OpenVZ não suporta a instalação do Docker. Além disso, o CentOS 8 não suporta o uso deste script para instalar o Docker. Para obter mais informações sobre a instalação do Docker, consulte o guia de instalação oficial do Docker.
Inicie o serviço Docker
systemctl start docker
Verifique o status de execução do Docker
systemctl status docker
Adicione o serviço Docker para iniciar automaticamente na inicialização
systemctl enable docker
O comando é o seguinte
docker run -d --name freenom --restart always -v $( pwd ) :/conf -v $( pwd ) /logs:/app/logs luolongfei/freenom
Ou, se você quiser customizar o tempo de execução do script, o comando é o seguinte
docker run -d --name freenom --restart always -v $( pwd ) :/conf -v $( pwd ) /logs:/app/logs -e RUN_AT= " 11:24 " luolongfei/freenom
O comando acima tem apenas mais um -e RUN_AT="11:24"
do que o anterior, onde 11:24
significa que a tarefa de renovação será executada às 11h24 todos os dias, horário de Pequim. Você pode personalizar esse horário. O parâmetro RUN_AT
aqui também suporta o formato de hora no comando CRON. Por exemplo, -e RUN_AT="9 11 * * *"
significa que a tarefa de renovação será executada às 11h09, horário de Pequim, todos os dias. para executar a tarefa todos os dias, você só deseja executá-la em dias alternados. Demora alguns dias para executar, basta modificar o valor de RUN_AT
.
Nota: Não é recomendado personalizar o tempo de execução do script. Como você pode definir o mesmo ponto de tempo para muitas pessoas, isso pode fazer com que todos iniciem solicitações ao servidor do Freenom ao mesmo tempo, impossibilitando o Freenom de fornecer serviços estáveis. Se você não personalizar o horário, o programa especificará automaticamente um ponto de tempo aleatório das 06 às 23 horas, horário de Pequim, como o horário de execução, e será reespecificado automaticamente sempre que o contêiner for reiniciado.
Ordem | significado |
---|---|
execução do docker | Comece a executar um contêiner |
-d parâmetro | O contêiner é executado em segundo plano e gera o ID do contêiner |
--nome parâmetro | Atribua um identificador ao contêiner para facilitar operações futuras, como iniciar, parar, excluir, etc. |
--reiniciar parâmetro | Configurar o tipo de inicialização do contêiner, sempre significa iniciar automaticamente o contêiner quando o serviço docker for reiniciado |
-v parâmetro | Monte o volume (volume). Após os dois pontos está o caminho do contêiner. Antes dos dois $(pwd) está o caminho do host (apenas caminhos absolutos são suportados). você pode substituí-lo ${PWD} $(pwd) . |
-e parâmetro | Especifique variáveis de ambiente no contêiner |
luolongfei/freenom | Este é o nome completo do caminho da imagem baixada do docker hub |
Neste ponto, seu contêiner de renovação automática está em execução. Depois de executar ls -a
, você pode ver que há um arquivo .env
e um diretório logs
em seu diretório atual. O diretório logs
armazena logs de programas e .env
é o arquivo de configuração. . Agora execute diretamente vim .env
para alterar todos os itens de configuração no arquivo .env
para o seu próprio e salve-o. Em seguida, reinicie o contêiner. Se a configuração estiver correta, você receberá o email relevante em breve.
nome da variável | significado | valor padrão | É necessário | Observação |
---|---|---|---|---|
FREENOM_USERNAME | Conta Freenom | - | sim | Apenas contas de e-mail são suportadas. Se você for um usuário que faz login usando uma conta social de terceiros, vincule seu e-mail na página de gerenciamento do Freenom. Após vincular, você pode usar sua conta de e-mail para fazer login. |
FREENOM_SENHA | Senha gratuita | - | sim | Alguns caracteres especiais podem precisar de escape. Para obter detalhes, consulte os comentários no arquivo .env . |
MULTIPLE_ACCOUNTS | Suporte a múltiplas contas | - | não | O formato de múltiplas contas e senhas deve ser " <账户1>@<密码1>|<账户2>@<密码2>|<账户3>@<密码3> ", tome cuidado para não omitir o símbolo "<>". não podem ser correspondidos corretamente. Se várias contas forem configuradas, FREENOM_USERNAME e FREENOM_PASSWORD acima não precisam ser definidos. |
MAIL_USERNAME | Conta de e-mail do robô | - | não | Suporte Gmail , QQ邮箱 , 163邮箱 e Outlook邮箱 |
MAIL_SENHA | Senha do e-mail do robô | - | não | Preencha a senha específica do aplicativo Gmail e preencha o código de autorização para QQ邮箱 ou 163邮箱 |
PARA | E-mail para receber notificações | - | não | Seu endereço de e-mail mais comumente usado, usado para receber e-mails relacionados a nomes de domínio enviados por endereços de e-mail de robôs |
MAIL_ENABLE | Se deve ativar a função push de e-mail | 0 | não | 1 : habilitar0 : Não habilitado por padrão. Se definido como 1 , a função de envio de email será habilitada e as variáveis MAIL_USERNAME , MAIL_PASSWORD e TO acima se tornarão obrigatórias. |
TELEGRAMA_CHAT_ID | seu chat_id | - | não | Você pode obter seu próprio id enviando /start para @userinfobot |
TELEGRAMA_BOT_TOKEN | token do seu Telegram bot | - | não | |
TELEGRAMA_BOT_ENABLE | Se deve ativar a função push Telegram Bot | 0 | não | 1 : ativar0 : Não habilitado por padrão. Se definido como 1 , as variáveis TELEGRAM_CHAT_ID e TELEGRAM_BOT_TOKEN acima devem ser definidas. |
AVISO_FREQ | Frequência de notificação | 1 | não | 0 : Somente quando há operação de renovação1 : Executado sempre |
NEZHA_SERVER | O IP ou nome de domínio do servidor de investigação Nezha | - | não | |
NEZHA_PORT | Porta do servidor de sonda Nezha | - | não | |
NEZHA_KEY | Chave especial do cliente Nezha Probe | - | não | |
NEZHA_TLS | Criptografia SSL/TLS do cliente Nezha | - | não | 1 : ativar0 : Não habilitado |
Para obter mais significados dos itens de configuração, consulte os comentários no arquivo .env.example.
Como verificar se sua configuração está correta?
Depois de modificar e salvar o arquivo .env
, execute docker restart freenom
para reiniciar o contêiner, aguarde cerca de 5 segundos e execute docker logs freenom
para visualizar o conteúdo de saída. Se houver uma palavra执行成功
no conteúdo de saída, isso significa que a configuração está correta. Se você ainda não teve tempo de configurar o endereço de e-mail de entrega e outros conteúdos, você pode primeiro desabilitar a função de e-mail.
Como atualizar para a versão mais recente ou reimplantar?
No diretório onde .env
está localizado, execute docker rm -f freenom
para excluir o contêiner existente, execute docker rmi -f luolongfei/freenom
para excluir a imagem antiga e, em seguida, execute o docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs luolongfei/freenom
pode ser reimplantado, para que seja o código mais recente após a implantação. Claro, o arquivo .env
correspondente à nova versão pode ter alterações. Não se preocupe, o programa atualizará automaticamente o conteúdo do arquivo .env
e migrará a configuração existente.
Em uma frase, execute o seguinte comando no diretório onde o arquivo .env
está localizado para concluir a atualização e atualização:
docker rm -f freenom && docker rmi -f luolongfei/freenom && docker run -d --name freenom --restart always -v $( pwd ) :/conf -v $( pwd ) /logs:/app/logs luolongfei/freenom
Verifique o status online e o tamanho do contêiner
docker ps -as
Veja o log de saída em execução do contêiner
docker logs freenom
Reiniciar contêiner
docker restart freenom
Impedir a execução do contêiner
docker stop freenom
Remover contêiner
docker rm -f freenom
Verifique a CPU, memória e outras informações ocupadas pelo contêiner docker
docker stats --no-stream
Veja a versão de instalação do Docker e outras informações
docker version
Reinicie o Docker (não contêiner)
systemctl restart docker
Fim do conteúdo na implantação do contêiner.
Heroku parou de fornecer serviços gratuitos em 28/11/2022, então esqueça este artigo. Anúncio oficial: https://blog.heroku.com/next-chapter
Para etapas específicas sobre [Implantação via Heroku], consulte aqui
A Railway atualizou seus termos de serviço e adicionou um limite de uso mensal. Os novos termos de serviço resultam em um máximo de cerca de 21 dias por mês, a menos que você verifique seu cartão de crédito, esse limite não existe . Termos e condições detalhados podem ser encontrados aqui.
Para etapas específicas sobre [Implantação via ferrovia], consulte aqui
Recomenda-se que os usuários que não possuem servidores próprios utilizem este plano de implementação. Este plano é totalmente gratuito.
Para etapas específicas sobre [Implantação via Koyeb], consulte aqui
Depois de ler o conteúdo específico do documento upstream e confirmar que você pode fazer isso , você pode clicar no botão abaixo para tentar a implantação com um clique:
O pacote gratuito ficou offline e não está mais disponível. #208
Todas as funções da nuvem usam o mesmo pacote compactado e foram processadas para compatibilidade. O endereço de download é: https://github.com/luolongfei/freenom/releases/download/v0.5.1/freenom_scf.zip. Este documento atualizará o endereço de download do pacote compactado aqui quando uma nova versão for lançada, então não se preocupe, o pacote apontado pelo endereço de download que você vê deve ser a versão mais recente.
Após o download, você receberá um arquivo zip. Coloque o arquivo zip em qualquer diretório que encontrar. Mais tarde, iremos carregá-lo para várias funções da nuvem na forma de arquivos zip.
Para etapas específicas sobre [Implantação via Tencent Cloud Function], consulte aqui
Para etapas específicas sobre [implantação por meio de funções do Alibaba Cloud], consulte aqui
Para as etapas específicas de [implantação por meio do Huawei Cloud Function], consulte aqui
Para as etapas específicas de [extrair diretamente o código-fonte para implantação], consulte aqui
Se você encontrar algum problema ou bug, sinta-se à vontade para enviar um problema (envie issue
de acordo com o formato do modelo para que eu possa reproduzir rapidamente o seu problema, caso contrário, o problema será ignorado se Freenom
alterar o algoritmo e causar isso). projeto se tornar inválido, envie um problema e me avise a tempo. Reparo e manutenção de longo prazo deste projeto. Bem vinda star
~
Muito obrigado a "estes usuários" por patrocinar e apoiar este projeto!
Se você acha que este projeto é útil para você, considere patrociná-lo para me encorajar a investir mais tempo em manutenção e desenvolvimento. Se você achar este projeto útil, considere apoiá-lo no futuro. Seu apoio será muito apreciado.
PayPal: https://www.paypal.me/mybsdc
Cada vez que você gasta dinheiro, você vota no tipo de mundo que deseja - Anna Lappe.
Fora do tópico: Você pode deixar uma mensagem ao patrocinar, e o conteúdo da mensagem será exibido na tela da lista de patrocínios. Se a imagem patrocinada não estiver sendo exibida corretamente, visite: https://images.llfapp.com/pay.png
Sua star
ou赞助
é minha motivação para a manutenção deste projeto a longo prazo. Agradeço sinceramente a todos os apoiadores “Cada vez que você gasta dinheiro, você está votando no mundo que deseja”. Além disso, recomendar este projeto a mais pessoas também é uma forma de apoio. Quanto mais pessoas o utilizam, mais motivação para atualizá-lo.
Acredite no futuro e mantenha-se “são”.
A seriedade é a forma como participamos nesta sociedade, e a seriedade é a forma como mudamos esta sociedade. ——Li Zhi
@anjumrafidofficial
(Para mais outros idiomas, envie PR para atualizar esta lista)
MIT