Skip to content

traefik + nginx + rsync + letsencrypt + mirrorbits

License

Notifications You must be signed in to change notification settings

msys2/msys2-main-server

MSYS2 main server

Provides:

  • nginx service for serving installers and packages (ports 80 and 443)
  • rsync server for serving the same (port 873, and 874 with SSL)
  • daemon and http server for staging repositories
  • letsencrypt integration
  • packages web interface and API
  • redirects from non-canonical domains
  • network statistics
  • instant messaging bridge between Discord and Gitter / OFTC IRC

Setup

  • Clone.
  • The storage is pointed to /srv/msys2repo so /srv/msys2repo/mingw/x86_64/ should exist.
  • Run docker compose up -d.
  • Assign DNS records for:

Test

Once everything is set up and running you can run python3 -m unittest tests/test_server.py which checks if all services are up and responding properly.

Staging repositories

Add to /etc/pacman.conf above the official repositories like this:

[staging]
Server = https://repo.msys2.org/staging/
SigLevel = Never

[mingw32]
Include = /etc/pacman.d/mirrorlist.mingw32

[mingw64]
Include = /etc/pacman.d/mirrorlist.mingw64

[msys]
Include = /etc/pacman.d/mirrorlist.msys

Local Development

There is a docker-compose variant in docker-compose.dev.yml that only uses HTTP and contains a limited set of services for local testing.

It provides the following services:

Run it with docker compose -f docker-compose.dev.yml .... For example docker compose -f docker-compose.dev.yml run repo and then access http://repo.localhost:9090/

About

traefik + nginx + rsync + letsencrypt + mirrorbits

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published