Skip to content

2.2 Project Structure and File Organization

gyk4j edited this page Dec 12, 2024 · 2 revisions

The top-level files and folders are categorized and described below.

General information

Documentations

  • docs: documentations and diagram on network protocol and API calls

Terraform

  • main.tf: Terraform configuration file that defines the resources to be created in the Amazon Web Services cloud platform
  • output.tf: Specifies the output data values for printing or reporting when updating resource state using terraform apply.
  • provider.tf: Contains the terraform block to import required provider plugins and their configurations.
  • variables.tf: Contains the variable declarations used in the resource blocks.

Vagrant

Docker

  • docker-compose.yaml: Docker Compose file for building and starting Docker containers

Docker images for container

  • db: MariaDB Docker image
  • file: SAMBA on Alpine Linux Docker image
  • mail: Apache James Docker image
  • toc: TOC controller Docker image. See also: toc-backend and toc-frontend
  • web: Apache HTTPD Docker image

Development and testing tools

  • dns: dnsmasq on Alpine Linux Docker image as a local authoritative DNS server to provide MX records to IMAP clients for mail server
  • maradns: configuration files for MaraDNS server to simulate multiple servers/services on localhost without Docker during development

Source codes