Esse repositório contém os códigos e scripts utilizados para fazer deploy dos sites pessoais do curso de Ciência da Computação da Universidade Federal da Fronteira Sul. A gerência de quais sites existem e suas propriedades (url, etc) são manuseadas no portal de intranet do curso, cujo código está no repositório ccuffs/intranet.
IMPORTANTE: se você quer apenas utilizar os sites do curso, ex.: ter um site pessoal, veja a documentação em cc.uffs.edu.br/sites.
Para rodar os scripts desse repositório, você precisa ter o git, php e o composer disponível na linha de comando.
Clone o repositório
git clone https://github.com/ccuffs/deploy-sites-pessoais & cd deploy-sites-pessoais
Instale as dependências
composer install
Se estiver em um ambiente Linux, certifique-se de dar permissão de execução para os arquivos .php
na raiz do projeto:
chmod +x *.php
Todas as opções do script podem ser vistas com a flag --help
, basta rodar:
php deploy-sitescc.php --help
Se você estiver apenas testando alguma funcionalidade do script, você pode rodá-lo sem muitos problemas. Execute:
php deploy-sitescc.php
Nesse caso, o script rodará utilizando o arquivo input-list-exemplo.json como fonte de conteúdo. Para rodar o script em um ambiente de produção, você utilizará algo como o seguinte:
php deploy-sitescc.php --input-list="https://cc.uffs.edu.br/intranet/api/sites/list.json" --output-dir="/var/www/sites" --control-dir="/var/www/sites/api/status"
A utilização desse repositório em produção está intrincicamente ligada ao portal de intranet do curso. Na máquina que rodará esse script (e hospedará os sites), você precisa do seguinte:
- Servidor web para servir as páginas.
- Pasta web acessível através da URL
/api/status
, por exemplo/var/www/sites/api/status
. O caminho para essa pasta deve ser utilizado na flag--control-dir
do scriptdeploy-sitescc
.
O recomendado é rodar os script de atualização de sites no cron, por exemplo, a cada 15 minutos. Para isso, rode:
crontab -e
Depois adicione a seguinte linha:
*/15 * * * * /usr/bin/php /home/fernando/www/deploy-sites-pessoais/deploy-sitescc.php --input-list="https://cc.uffs.edu.br/intranet/api/sites/list.json" --output-dir="/home/fernando/www/sites.cc.uffs.edu.br/public" --control-dir="/home/fernando/www/sites.cc.uffs.edu.br/public/api/status" >> /home/fernando/www/deploy-sites-pessoais/deploy-sitescc.log
Para reduzir a carga de processamento ou memória, pode-se usar --batch-internval
, --site-interval
e --batch-size
ao rodar deploy-sitescc
. Os valores default para essas flags são bem generosos.
Sua ajuda é muito bem-vinda, independente da forma! Confira o arquivo CONTRIBUTING.md para conhecer todas as formas de contribuir com o projeto. Por exemplo, sugerir uma nova funcionalidade, reportar um problema/bug, enviar um pull request, ou simplemente utilizar o projeto e comentar sua experiência.
Veja o arquivo ROADMAP.md para ter uma ideia de como o projeto deve evoluir.
Esse projeto é licenciado nos termos da licença open-source Apache 2.0 e está disponível de graça.
Veja todas as alterações desse projeto no arquivo CHANGELOG.md.
Abaixo está uma lista de links interessantes e projetos similares: