

9 changed files with 235 additions and 2 deletions
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
FROM alpine:3.9 |
||||
|
||||
RUN apk add --no-cache \ |
||||
bash \ |
||||
bash-completion \ |
||||
coreutils \ |
||||
diffutils \ |
||||
findutils \ |
||||
inotify-tools \ |
||||
libxml2-utils \ |
||||
libxslt \ |
||||
make \ |
||||
nodejs \ |
||||
nodejs-npm \ |
||||
procps \ |
||||
python3 \ |
||||
rsync |
||||
|
||||
RUN npm install -g less |
||||
|
||||
RUN mkdir -p /fsfe-local-build/fsfe.org |
||||
|
||||
EXPOSE 8000 |
||||
|
||||
CMD sh /fsfe-local-build/docker-cmd.sh |
||||
|
@ -1,5 +1,49 @@
@@ -1,5 +1,49 @@
|
||||
# FSFE Local Build |
||||
# FSFE Website Local Build |
||||
|
||||
This is a collection of scripts and configuration files necessary to build fsfe.org websites locally. |
||||
This is a collection of scripts, tools and configuration files necessary to build fsfe.org websites locally. |
||||
|
||||
Full instructions can be found in FSFE's wiki: https://wiki.fsfe.org/TechDocs/Mainpage/BuildLocally |
||||
|
||||
## Docker based development environment |
||||
|
||||
For convenience local development you may want to use the docker contaienr provided by this repo. |
||||
|
||||
The container contains everything you need to work on the website including serving a preview, building the static pages and the CSS files. |
||||
|
||||
### Requirements |
||||
|
||||
* Docker https://docs.docker.com/install/ |
||||
* Docker Compose https://docs.docker.com/compose/install/ |
||||
* Patience (for the website build) |
||||
|
||||
### Website Dev Instructions |
||||
|
||||
#### Initial set up |
||||
|
||||
Just run the following command for the initial setup: |
||||
|
||||
``` |
||||
./docker-setup.sh |
||||
``` |
||||
|
||||
⚠ The command may run some hours, since it does the initial full build of the website. |
||||
|
||||
#### Development |
||||
|
||||
Spin up the container (⚠ takes some minutes): |
||||
|
||||
docker-compose up |
||||
|
||||
The website should now be available on your machine under http://127.0.0.1:8000/. |
||||
|
||||
Build a single page after changes (e.g. `index.de.xhtml`): |
||||
|
||||
``` |
||||
docker exec \ |
||||
--workdir /fsfe-local-build/fsfe.org \ |
||||
fsfe-local-build \ |
||||
bash ../fsfe-preview.sh ../fsfe-website/index.de.xhtml |
||||
``` |
||||
|
||||
Style modifications in `fsfe-website/look` trigger a re build of the styles. |
||||
After modifications a page reload shoud show the changes. |
||||
|
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
### BUILD DIRECTORIES ### |
||||
|
||||
# Cloned Git directory (repository with XHTML source files) |
||||
LOC_trunk=/fsfe-local-build/fsfe-website |
||||
|
||||
# Directory in which the result of the build process (html files) will be saved |
||||
LOC_out=/fsfe-local-build/fsfe.org |
||||
|
||||
|
||||
### LOCAL WEBSERVER ### |
||||
|
||||
# Choose your local webserver. |
||||
# Default is "python" which is python3's built-in http.server module (SimpleHTTP) that is available on most distributions |
||||
# Use "lighttpd" if you want to use the Lighttpd webserver. This has to be configured manually (see guide) |
||||
HTTPD=lighttpd |
||||
|
||||
|
||||
### ADVANCED ### |
||||
|
||||
# Directory of the secondary Git directory with which you made a first full build. |
||||
# Avoids having some generated files in your clean trunk. |
||||
# Default: Leave empty if you just want to use one Git source directory (recommended) |
||||
LOC_trunk_dev= |
||||
|
||||
# Choose on which port the webserver runs. This has no effect for "lighttpd". |
||||
HTTPD_port=5080 |
||||
|
||||
# If you use other webservers like "lighttpd", this is the path to its config file |
||||
# Default: points to a lighttpd config file in the same directory as the script |
||||
# Has no effect if you use the "python" webserver |
||||
HTTPD_conf=$ROOT/lighttpd-fsfe.conf |
||||
|
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash |
||||
######################################################################## |
||||
# Copyright (C) 2019 Michael Weimann <mweimann@fsfe.org> |
||||
######################################################################## |
||||
# |
||||
# This program is free software: you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
# |
||||
######################################################################## |
||||
# |
||||
# This script is executed in docker CMD. |
||||
# |
||||
####################################################################### |
||||
|
||||
# Set up the less watcher |
||||
cd /fsfe-local-build |
||||
sh less-watch.sh & |
||||
|
||||
# Run the preview server |
||||
cd /fsfe-local-build/fsfe.org |
||||
python3 -m http.server |
||||
|
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
version: '3' |
||||
|
||||
services: |
||||
fsfe-local-build: |
||||
build: . |
||||
image: fsfe/local-build:1.0 |
||||
container_name: fsfe-local-build |
||||
ports: |
||||
- 8000:8000 |
||||
volumes: |
||||
- .:/fsfe-local-build |
||||
|
@ -0,0 +1,53 @@
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash |
||||
######################################################################## |
||||
# Copyright (C) 2019 Michael Weimann <mweimann@fsfe.org> |
||||
######################################################################## |
||||
# |
||||
# This program is free software: you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
# |
||||
######################################################################## |
||||
# |
||||
# This script runs the docker dev setup. |
||||
# |
||||
####################################################################### |
||||
|
||||
echo -e "\e[96m→ Cloning the website repo\e[0m" |
||||
git clone git@git.fsfe.org:FSFE/fsfe-website.git |
||||
echo "" |
||||
|
||||
echo -e "\e[96m→ Setting up the config file\e[0m" |
||||
cp config.cfg.docker config.cfg |
||||
echo "" |
||||
|
||||
echo -e "\e[96m→ Linking the look directory\e[0m" |
||||
ln -s ../fsfe-website/look fsfe.org/look |
||||
echo "" |
||||
|
||||
echo -e "\e[96m→ Starting the container\e[0m" |
||||
docker-compose up --build -d |
||||
echo "" |
||||
|
||||
echo -e "\e[96m→ Initial full build\e[0m" |
||||
echo -e "\e[33m⚠ This may take some hours\e[0m" |
||||
docker exec fsfe-local-build \ |
||||
bash /fsfe-local-build/fsfe-website/build/build_main.sh \ |
||||
build_into /fsfe-local-build/fsfe.org/ \ |
||||
--statusdir /fsfe-local-build/status/ \ |
||||
|| true |
||||
echo "" |
||||
|
||||
echo -e "\e[96m→ Stopping the container\e[0m" |
||||
docker-compose stop |
||||
echo "" |
||||
|
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash |
||||
######################################################################## |
||||
# Copyright (C) 2019 Michael Weimann <mweimann@fsfe.org> |
||||
######################################################################## |
||||
# |
||||
# This program is free software: you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
# |
||||
######################################################################## |
||||
# |
||||
# This script sets up a watcher that re-compiles the fsfe website |
||||
# styles on changes. |
||||
# |
||||
####################################################################### |
||||
|
||||
while inotifywait \ |
||||
-r -e close_write -e create -e moved_to \ |
||||
--exclude '\.(swx|swp|min\.css)' fsfe-website/look; do |
||||
lessc -x fsfe-website/look/fsfe.less fsfe-website/look/fsfe.min.css; |
||||
done |
||||
|
Loading…
Reference in new issue