Portal Stack
There are several services, or modules, that make up the Skynet Portal stack. Portal operators can define which modules they want to run with the PORTAL_MODULES environment variable. Skyd and the webportal are mandatory and always run, while all other services are optional and can be enabled with their corresponding flag.
'a': Accounts (https://github.com/SkynetLabs/skynet-accounts)
'b': Blocker (https://github.com/SkynetLabs/blocker)
'g': GunDB (https://github.com/SkynetLabs/gundb-relay)
'j': Jaeger
'm': MongoDB (when 'a' (i.e. Accounts) are used, this is included automatically)
's': Malware Scanner (https://github.com/SkynetLabs/malware-scanner)
'u': Abuse Scanner (https://github.com/SkynetLabs/abuse-scanner)

Core Stack

The core Skynet Portal stack is made up of three services, skyd, skynet-webportal, and skynet-accounts.

Skynet Daemon (skyd)

Skyd is what makes a portal a portal. Skyd acts as a modified renter node on the Sia network, and is responsible for managing the data uploaded to the portal and ensuring it stays healthy on the Sia network.

Skynet Webportal

The skynet-webportal service is what makes skyd publically accessible to the web. One of the core responsibilities of the webportal is managing an NGINX server that proxies requests to the corresponding service.

Skynet Accounts

The skynet-accounts service manages users for the portal and tracks registrations.
Module Flag: a

Additional Services

Mongo

Mongo is a mongoDB cluster that runs on the portal. When running a multi-server portal, mongo is used to help maintain data consistency across servers. For individual servers, it supports accounts, the blocker, and the scanner services.
Module Flag: m

Blocker

The blocker service is an abstraction on top of the skyd blocklist. It helps sync the blocklist across servers in a portal cluster as well as being a single source of truth for blocklist requests from outside as well as blocklist request from the scanner services.
Module Flag: b

Malware Scanner

The malware scanner uses ClamAV to scan content uploaded to the portal for malware.
Module Flag: s

Abuse Scanner

The abuse scanner is a service that monitors an email inbox for abuse complaints and adds skylinks to the blocklist.
Module Flag: u

Jaeger

Jaeger is an open source tracing library that skyd uses for debugging.
Module Flag: j

GunDB

Portals support GunDB by running a gundb-relay.
Module Flag: g