Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Repository of

This is the git repository of web sites, including static pages. Feel free to fork, modify, and send pull request to us.

Repo structure website contains sections from the following different sub-domain-based repos, each repo is hosted as different virtualhosts and not relying on others. please fork and checkout as you need.

base - Server configurations and automatic scripts - Main MozTW website - MozTW Forum - Log Archive for #mozilla-taiwan on and #moztw on Telegram. - Localization system related stuff - A Planetplanet installation for MozTW Planet

browser-pairs - Foxmosa pairs game at
star-pusher - Foxmosa Sokuban game at - HTML5 demos located at

Deprecated: - Wiki which is not actively used - Picture Gallery of MozTW prior to Firefox 1.5 times. - Repo for, personal Firefox promotion and product page platform (readonly, will retire on August 2017)

How do I contribute?

  1. Report issues at Issue tracker
  2. Make a fork of this repo and clone to your working space (See steps in next section)
  3. Go to your cloned repository, create a new branch with meaningful name, e.g. git checkout -b issue123-fix-something
  4. Make changes, test, and commit. Be sure to mention the issue id in the commit message.
  5. File a pull request to master branch (or create a new branch if you need to collaborate with someone else). direct PRs to production branch will be rejected.
  6. Someone will review the request, you may ping if there's no progress after a while.
  7. The content will go live at www-stage once the PR is accepted, and will go live at production site when ready.


You can do shallow clone to get this repo more quickly.

git clone --depth 1

Using Node.js directly

  1. Install nodejs and npm in your system.
    • On Windows, you also need Microsoft Visual C++ Redistributable Package.
    • On Ubuntu/Debian, you also need nodejs-legacy package.
  2. Run npm install in repo directory.
  3. Run npm start in repo directory, the output will stay at Watching files.
  4. Open localhost:3000, modify html and browsersync will reload the preview page.

Using Docker Compose

  1. Install Docker Desktop
    • On Ubuntu/Debian, you may install docker-ce and docker-compose-plugin instead by running sudo apt install docker-ce docker-compose-plugin.
  2. (optional) Edit ./docker-compose.yml if you need to change listen port. Default: 8080
  3. (optional) Edit ./docker-apache.conf if you need to change configurations for httpd.
  4. Run docker compose up -d in repo directory to build and run the container.
  5. Open http://localhost:8080 in your browser.
  6. Run docker compose down in repo directory to remove the container.

Static Pages Local Installation

It's easy to set up static pages including home page, event pages, contribution pages, etc.

Only one requirement:

  • SSI (Server Side Include)-supported web server with Virtual Hosts enabled

Apache 2.4

To enable SSI on Apache is very easy. Take Ubuntu for example, just execute a2enmod include then you have a SSI-ready Apache.

The second step is adding virtual host configs to your Apache configuration:

<VirtualHost *:80>
  DocumentRoot /path/to/this/repo/
  <Directory /path/to/this/repo>
    Options FollowSymLinks Includes
    SSILegacyExprParser on
    AllowOverride All
    Order allow,deny
    Require all granted

Enable the new virtual host with a2ensite moztw, restart Apache, and open You should now see MozTW homepage.


Example of site configuration with SSI module enabled:

server {
  listen 80;
  root /path/to/this/repo/;

  location / {
    ssi on;
    ssi_types text/shtml;
    index index.html index.htm index.shtml index.php;

  # Rewrite *.html to *.shtml (for example, the download link)
  location ~ \.html$ {
    if (!-f $request_filename) {
      rewrite ^(.*)\.html$ $1.shtml;

Note that we're not running Nginx server on the hosting site, you might encounter some problems, e.g., .htaccess is not supported.


PHP is only required for GitHub Webhook and Online Update mechanisms to work. Only tested with PHP 7.1, with cURL extension required to call GitHub API for hook source range verification.

Coding Style

  • Please always use LF on line ending, and set 2/4 space characters as indent according to the original style of each files.
  • Please take Mozilla Coding Style as reference.
  • If your editor supports EditorConfig, install the plugin and it will take care the style config.