• Stars
    star
    148
  • Rank 249,983 (Top 5 %)
  • Language
    HTML
  • Created over 7 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Build code for the websites on thunderbird.net and start.thunderbird.net

thunderbird-website

This repo contains the Thunderbird in-client Start page and the www.thunderbird.net website.

Build Instructions

Dependencies

On Ubuntu, you would need to use apt-get instead of yum, and similarly for different package managers.

pip install -r requirements-dev.txt
git clone https://github.com/thundernest/thunderbird-notes.git thunderbird_notes
git clone -b production https://github.com/mozilla-releng/product-details.git
sudo yum install npm
sudo npm install -g less

If you need the localizations to display pages translated from English into other languages:

git clone https://github.com/thundernest/thunderbird.net-l10n.git locale
l10n_tools/compile.sh

Run Build

A basic build is python build-site.py. It builds www.thunderbird.net into the thunderbird.net directory by default.

There are additional arguments:

  • --startpage

    • This builds the start page into the site directory.
  • --enus

    • This restricts builds to only the 'en-US' locale, for faster testing.
  • --debug

    • This logs output for each locale built and some of the templates, used to make debugging easier.
  • --watch

    • This starts an HTTP server on localhost port 8000, and watches the template and assets folders for changes and then does quick rebuilds.
    • Note that this only rebuilds when you modify a file. To add or remove files, you should start a new build.
  • --port

    • Sets the port to be used for the localhost server. Default is 8000. Format: --port 8000.
  • --buildcalendar

    • This builds the holiday calendars. Normally this will build every locale, but you can restrict the build to just US by using the --enus options.
  • thunderbird.net templates are in the website directory, and start page in the start-page dir. Assets are shared and in the assets dir.

View Website

To view the website for testing purposes, run python build-site.py --watch. This also works with the start page.

You can then navigate to: http://127.0.0.1:8000 to view the website. None of the apache redirects work in this mode, so you have to click your desired locale manually in the browser, but the site should behave normally after that.

Automated Builds

In general, you only need to manually build the website for testing and development purposes. Webhooks on each of the repositories trigger automatic rebuilds when:

Both of these update frequently enough(multiple times per week) that independent updates for localization are not necessary. Any triggered update will always use the most recent data available from all sources. If changes to one of the above repos don't produce any change in the built files, no actual update of the web server will occur.

Manual Site Updates

Occasionally you need to update the site manually, for example to move changes made to this repo to stage and production, or because the automation failed, or any reason like that. You'll need to either login to the control node as described in the https://github.com/thundernest/thundernest-ansible documentation or check out and setup the thundernest-ansible scripts on your local machine. That is also covered in the documentation for thundernest-ansible.

Assuming you are logged into the control node or have thundernest-ansible set up:

For stage:

cd thundernest-ansible
source files/secrets.sh
ansible-playbook plays/website-build.yml

For prod:

cd thundernest-ansible
source files/secrets.sh
ansible-playbook --extra-vars="branch=prod" plays/website-build.yml

The website-build.yml ansible script performs complete builds of the website, including both the start page and thunderbird.net itself.

Localization

You can contribute to content translation of www.thunderbird.net pages using Pontoon.

Donation FAQ

Donation FAQ entries are found in ./website/includes/faq.html.

Tests

There are several pytests located in ./tests. To run the full test-suite, simply use the command python3 -m pytest.

Calendar Generation

Calendar generation can be manually built by appending the option--buildcalendar. This queries our current calendar provider (Calendarific) and generates a .ics file per each locale specified in settings.py. For testing, you can limit this to just US by using the option --enus. This option requires setting the CALENDARIFIC_API_KEY= environment variable. If you're using a paid plan you can also set CALENDARIFIC_IS_FREE_TIER=false to remove the sleep time between calls.

More Repositories

1

thunderbird-android

Thunderbird for Android – Open Source Email App for Android (fka K-9 Mail)
Kotlin
10,485
star
2

import-export-tools-ng

Import Export Tools that supports Thunderbird v68-v128
HTML
285
star
3

appointment

Invite others to grab times on your calendar. Choose a date. Make appointments as easy as it gets.
Python
205
star
4

webext-examples

Example extensions for Thunderbird WebExtensions APIs
JavaScript
87
star
5

developer-docs

Developer documentation for Thunderbird contributors.
82
star
6

autoconfig

The ISPDB, Thunderbird's database of mail configuration files.
Python
53
star
7

webext-experiments

WebExtension Experiments for Thunderbird
JavaScript
29
star
8

policy-templates

Policy Templates for Thunderbird
JavaScript
27
star
9

thunderbird-notes

Release Notes for Thunderbird
Python
24
star
10

webext-docs

MailExtension Documentation
Python
21
star
11

webext-support

Additional resources for extension developers (tools, scripts, custom elements, Experiment APIs)
JavaScript
19
star
12

ews-rs

A Rust crate for interacting with the Exchange Web Services API
Rust
13
star
13

xml-struct-rs

Rust
13
star
14

thundercell

Forging only the strongest thunder
Rust
12
star
15

linux-sys-tray

Thunderbird system tray icon for KDE and Ubuntu GNOME
Rust
10
star
16

thunderblog

A simple, responsive, mobile-first Wordpress theme for the Thunderbird Blog
HTML
9
star
17

scripts-and-utilities

A webpage linking to scripts and utilities for use with Thunderbird.
9
star
18

webdav-filelink

FileLink Provider for WebDAV
JavaScript
9
star
19

thunderbird.net-l10n

gettext files for thunderbird.net and start.thunderbird.net
9
star
20

tb-website-builds

The static files hosted on thunderbird.net
HTML
7
star
21

knowledgebase-issues

for tracking Thunderbird Desktop SUMO Knowledge Base issues
4
star
22

stats

Install count stats collector and display for Thunderbird.
Python
4
star
23

fdroid-thunderbird

Thunderbird F-Droid repository
HTML
3
star
24

thundernest-ansible

Thunderbird Web Server Setup Scripts
Python
3
star
25

atn-review-policy

Reviewer policy for addons.thunderbird.net (Thunderbird add-ons)
3
star
26

enterprise-docs

Documentation for deploying and managing Thunderbird within an organization.
3
star
27

thunderbird-l10n

Localized messages for Thunderbird
Fluent
2
star
28

tbcore

Reads commits to hg, and generates a list of contributors sorted by contribution amount
JavaScript
2
star
29

thunderbird.github.io

HTML
2
star
30

broker

Thunderbird Account Broker
Python
2
star
31

council-docs

Official Thunderbird Council documents.
2
star
32

design-docs

2
star
33

webext-schemas

Thunderbird WebExtension Schema Files
1
star
34

services-ui

Shared components for Thunderbird Services Vuejs applications
Vue
1
star
35

heatmap

HTML
1
star
36

policies

A repo for the editing and version control of policies.
1
star
37

wetransfer-extension

JavaScript
1
star
38

github-action-thunderbird-aaq

github action to get all the Thunderbird SUMO forum questions aka Ask a Question or AAQ
Ruby
1
star
39

dbus_hooks

Thunderbird implementation of ksni for the linux system tray icon
Rust
1
star
40

http-mx

mx lookup API for Thunderbird
Python
1
star
41

extension-finder

JavaScript
1
star
42

webext-compat-data

Thunderbird WebExtension compat data
JavaScript
1
star