static-site
static-site copied to clipboard
Statically generated site for Redbrick
Static-Site
A Static Site for redbrick generated with hexo using a theme based off icarus
Requirements
- Node : v6.9(LTS) Download Node
Development
To set up the for development
-
yarnthis will install all the dependencies -
copy
.env.exampleto.env -
yarn startto create start the serve -
To generate new posts
- Run
yarn posts [title]This will create a new post insource/_post/[title].md
- Run
-
To generate new pages:
- Run
yarn page [title]this will create a new page insource/[title]/index.md
- Run
-
To edit the sidebar:
- Edit
themes/redbrick-theme/_config.yaml- this is where all the theme configuration is controlled from.
- Edit
Docker
Theres a docker-compose.yml for development.
- Copy
.env.exampleto.env - Run
docker-compose up
Generate
- To demo the site run
yarn start. This will create a server that runs onlocalhost:3000 - To work on css and have it auto regenerate use
yarn hexo. This will create a server that runs onlocalhost:4000
CSS and Templates
- You can edit the css for the theme in
themes/redbrick-theme/source/css - You can edit the templates in
themes/redbrick-theme/layout
Google analytics
Analytics can be enabled by adding your analytics key to theme/redbrick/_config.yaml
Production
Setup
To deploy to a server run:
yarnthis will install all the dependencies- modify
_config.ymlas needed - copy
production/website.serviceto/etc/systemd/system yarn generateto create initial sitesystemctl start websiteto start the express server
You will also need to create three files:
mailing_lista newline-separated list of email addressesemail_update_loga newline-separated reverse-chronological list of times email updates were sent.envby copying.env.exampleand modifying values (important)- Set any Environment Variables through the env file
mailing_list and email_update_log can be left blank, though updates for every post in history
will be sent if no previous send date is specified.
Then using apache or nginx proxy traffic to port 3000.
And done.
Docker
To use docker in production theres a docker-compose.yml in the production folder.
- Copy the
.env.exampleto.envrelative to thedocker-compose.yml. - Modify
.env - Create a file called
mailing_listand add email addresses for announce - run
docker-compose up -d
Generate via API
- While the server is live, a visit to
http://[sitehost]/api/regenerate?token=your_secret_tokenwill runhexo generateand send emails for any new posts so long as that process is not already underway.
Mail Options
To use sendmail rather then SMTP in the _config.yml set useSendMail to true.
To disable auth on SMTP leave auth.user and auth.pass as empty.
Modify the host, and port options as needed for SMTP either in the config or using the env variables.
Environment Variables
| Variable | Example | Description |
|---|---|---|
SECRET_API_TOKEN |
API key for regenerating the site | |
RECAPTCHA_SECRET_KEY |
Recaptcha server key from Google | |
RECAPTCHA_SITE_KEY |
Recaptcha site key same as the on in the theme | |
LOG_ROTATE |
24h |
When to rotate logs |
SMTP_HOST |
mailhost.redbrick.dcu.ie |
SMTP host address |
SMTP_PORT |
25 |
SMTP port for server |
SMTP_SECURE |
false |
if using SSL or not |
SMTP_USER |
no-reply |
redbrick username for SMTP auth leave off the @redbrick.dcu.ie |
SMTP_PASS |
account password | |
SMTP_AUTH_METHOD |
plain |
auth method to use with SMTP. Defaults to plain |
PORT |
3000 |
port to run the server on defaults to 3000 |
License
Official website of DCU Redbrick Society.
Copyright (C) 2017 Redbrick and all contributors.
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 https://www.gnu.org/licenses/.