Skip to content

Feature/nginx proxy #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
*.swp
*/certs/*
*/data/*
.DS_Store
data/*
57 changes: 57 additions & 0 deletions ReadMe-Docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# About this LabCAS docker

This branch for the LabCAS docker system is created to use reverse proxy server, create proper containers connections, logging and data separation. LabCAs System contains following main components
- LabCAS GUI
- LabCAS backend
- LabCAS authentication (LDAP and OktaSAML based)

In this branch we are creating a docker system which creates a docker network so these components can communicate properly.

## Table of Contents

- [Overview](#overview)
- [Developers Notes](#developers)
- [Instructions](#instructions)


## Overview

This project is created to automate deployment of various LabCAS system components.
This LabCAS docker runs individual components in containers and they can communicate with each other over internal docker network, this is achieved by docker-compose file.
Idea is to create customizable containers which can run on any development platforms (lcoal, test, prod, dev).
A reverse proxy is set up using nginx server. So the all the SSL related settings are done at one level and all the containers need not be exposed to outside the network.


## Developers Notes

This section is for developers to help further update the current system as per requirements.
1. 'docker-compose.yml'
This file contains the information and configurations for the Docker containers.
2. Volumes
In the docker-compose file the "Volumes" section is used to update the host folder/directory mapped to containers. This helps to persist the data and track all logs without loosing them upon recreation of images and containers.
3. Log Files
Logs here are meant to address, system, service and application logs for all the different components. These log files help address any system issues.
Update the logs files and directories for each container.
For example nginx proxy server called 'labcas-proxy' has a standard /var/log/nginx to collect all the logs generated by nginx. And in the docker-compose volumes its mapped to ./data/logs on the host machine. Similar things can be done for other applications.
4. commom/ubuntubase
A a common ubuntubase is added to be used by various containers. Currently used by auth and labcas-ui containers.
5. .env files
Each container can have local.dev, prod.dev, test.env which can contain container specific environment variables. These can be set directly in these files or can be access by remote env service or some other ways but those are appropriately set per container and per compose files.
6. nginx-default.conf
This is part of labcas-proxy container which takes care of all the routing and ssl related settings for all the services. In this file set containers and application with their paths.

## Instructions

Following are three comments used to build, run and bring down the applications (System components/ docker containers). Go into the directory where docker-compose file located and then use following commands

1. Build applications
'docker-compose build'

2. Run applications
'docker-compose up -d'

3. Bring Down
'docker-compose down'

4. Check status
'docker-compose ps'
136 changes: 136 additions & 0 deletions common/ubuntubase/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
#
# Base (Ubuntu) Linux Dockerfile
#
# This provides a base image supporting non-java components. It
# provides these key software prerequisites:
# + python 3.10
# + nginx web server (with support for HTTPS)
#

# Ubuntu 22.04
#
FROM ubuntu:jammy
ENV DEBIAN_FRONTEND noninteractive
# Install common software.
RUN \
sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
apt-get update && \
apt-get -y upgrade && \
apt-get install -y build-essential software-properties-common locales \
ca-certificates numactl libxml2-dev libxmlsec1-dev \
pkg-config python3 python3-pip python3-dev python3-yaml \
python-is-python3 byobu curl git htop man unzip vim wget \
less nginx libpcre3 libpcre3-dev && \
rm -rf /var/lib/apt/lists/*
RUN locale-gen en_US; locale-gen en_US.UTF-8




####

RUN ARCH=$(uname -m) && \
# Install standard dependencies that work on all architectures
pip install annotated-types anyio certifi charset-normalizer click colorama \
dnspython exceptiongroup fastapi h11 idna pydantic pydantic-settings \
pydantic_core pymongo python-dotenv requests sniffio starlette \
typing_extensions urllib3 uvicorn isodate pyjwt && \
# Handle xmlsec and python3-saml differently based on architecture
if [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then \
echo "Detected ARM64 architecture. Using alternative approach for xmlsec." && \
# Try binary install first
pip install --only-binary :all: xmlsec || \
# If that fails, try with build isolation disabled
pip install --no-build-isolation xmlsec || \
# If that still fails, skip it but install python3-saml without dependencies
(echo "xmlsec installation failed on ARM64, continuing without it" && \
pip install python3-saml --no-deps); \
else \
echo "Using standard installation on $ARCH" && \
pip install xmlsec python3-saml; \
fi

# uwsgi
#
# First ensure we don't run into library incompatibilities: rebuild
# lxml and xmlsec against the libxml2 installed above
#
RUN pip install --no-cache-dir --force-reinstall lxml
ENV UWSGI_VERS=2.0.28
RUN curl -L -o /tmp/uwsgi.tar.gz \
https://github.com/unbit/uwsgi/archive/refs/tags/$UWSGI_VERS.tar.gz
RUN cd /usr/local/src && tar xzf /tmp/uwsgi.tar.gz && \
ln -s uwsgi-$UWSGI_VERS uwsgi && mkdir -p /usr/local/lib/uwsgi/plugins && \
echo "plugin_dir = /usr/local/lib/uwsgi/plugins" >> uwsgi/buildconf/default.ini
RUN pip install /usr/local/src/uwsgi

# for apps that may expect to use "--plugin python3" or "--plugin python"
RUN PYTHON=python3 uwsgi --build-plugin "/usr/local/src/uwsgi/plugins/python python3" && \
mv python3_plugin.so /usr/local/lib/uwsgi/plugins/python3_plugin.so && \
chmod 644 /usr/local/lib/uwsgi/plugins/python3_plugin.so
RUN cd /usr/local/lib/uwsgi/plugins && ln -s python3_plugin.so python_plugin.so
# RUN update-alternatives --install /usr/lib/uwsgi/plugins/python_plugin.so \
# python_plugin.so /usr/lib/uwsgi/plugins/python3_plugin.so 1
RUN pip install uwsgitop

COPY cacerts/README.md cacerts/*.crt /usr/local/share/ca-certificates/
RUN update-ca-certificates
ENV REQUESTS_CA_BUNDLE /etc/ssl/certs/ca-certificates.crt

RUN pip install requests
ENV PYTHONIOENCODING utf8

# Create the oarop user that runtime systems should run on by default.
# This user's UID must be set to 1000 to ensure alignment with the oarop
# user on the host system.
#
RUN sed --in-place -e '/CREATE_MAIL_SPOOL/ s/=yes/=no/' /etc/default/useradd
ARG opuser=oarop
ARG opuid=1000
RUN groupadd --gid $opuid $opuser && \
useradd -m --comment "OAR Operations" --shell /bin/bash \
--gid $opuid --uid $opuid $opuser

ENV OAR_OP_USER $opuser

RUN mkdir ~/gnupg && chmod go-rwx ~/gnupg && echo "disable-ipv6" >> ~/gnupg/dirmngr.conf

# Copy default webpage
RUN rm /var/www/html/index.nginx-debian.html && \
rm /etc/nginx/sites-enabled/*
COPY html/index.html /var/www/html/index.html
COPY html/robots.txt /var/www/html/robots.txt
RUN chmod a+r /var/www/html/robots.txt /var/www/html/index.html

# Copy in CA certs
COPY certs/digicert-intermediate.cer /etc/ssl/certs/digicert-intermediate.pem
COPY certs/dhparam.pem /etc/ssl/certs/dhparam.pem
# COPY certs/NISTIssuingCA01.chain.pem /etc/ssl/certs/NISTIssuingCA01.chain.pem
# COPY certs/NISTIssuingCA03.chain.pem /etc/ssl/certs/NISTIssuingCA03.chain.pem
COPY certs/OAR-DevOnly-SiteCA.chain.cert.pem /etc/ssl/certs/OAR-DevOnly-SiteCA.chain.pem
# RUN cat /etc/ssl/certs/NISTIssuingCA01.chain.pem \
# /etc/ssl/certs/NISTIssuingCA03.chain.pem \
RUN cat /etc/ssl/certs/OAR-DevOnly-SiteCA.chain.pem \
/etc/ssl/certs/digicert-intermediate.pem \
>> /etc/ssl/certs/dev-test.chain.pem
RUN chgrp oarop /etc/ssl/private && chmod g+rx /etc/ssl/private

COPY nginx.conf /etc/nginx/nginx.conf
RUN chmod a+r /etc/nginx/nginx.conf
# The child image will copy over the default.conf

ARG cachain=dev-test

RUN if [ -s /etc/ssl/certs/$cachain.chain.pem ]; then \
cat /etc/ssl/certs/$cachain.chain.pem >> \
/etc/ssl/certs/ca-certificates.crt; \
cp /etc/ssl/certs/$cachain.chain.pem \
/usr/local/share/ca-certificates/$cachain.chain.crt; \
/usr/sbin/update-ca-certificates; \
echo Added $cachain.chain.pem as trusted CA; \
fi

ENV REQUESTS_CA_BUNDLE /etc/ssl/certs/ca-certificates.crt

# Define default command.
CMD ["bash"]
13 changes: 13 additions & 0 deletions common/ubuntubase/cacerts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
This directory contains non-standard CA certificates needed to build the docker
images.

Failures building the Docker containers defined in ../ due to SSL certificate
verification errors may be a consequence of your local network's firewall. In
particular, the firewall may be substituting external site certificates with
its own signed by a non-standard CA certficate (chain). If so, you can place
the necessary certificates into this directory; they will be passed into the
containers, allowing them to safely connect to those external sites.

Be sure the certificates are in PEM format and include a .crt file extension.

Do not remove this README file; doing so may cause a Docker build faiure.
Empty file.
69 changes: 69 additions & 0 deletions common/ubuntubase/certs/OAR-DevOnly-SiteCA.chain.cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
-----BEGIN CERTIFICATE-----
MIIF8jCCA9qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZMxCzAJBgNVBAYTAlVT
MQswCQYDVQQIDAJNRDEVMBMGA1UEBwwMR2FpdGhlcnNidXJnMQ0wCwYDVQQKDARO
SVNUMQwwCgYDVQQLDANPREkxGzAZBgNVBAMMEk9BUi1EZXZPbmx5LVJvb3RDQTEm
MCQGCSqGSIb3DQEJARYXcmF5bW9uZC5wbGFudGVAbmlzdC5nb3YwHhcNMjQxMDI5
MTQwODA0WhcNMzQxMDI3MTQwODA0WjB8MQswCQYDVQQGEwJVUzELMAkGA1UECAwC
TUQxDTALBgNVBAoMBE5JU1QxDDAKBgNVBAsMA09ESTEbMBkGA1UEAwwST0FSLURl
dk9ubHktU2l0ZUNBMSYwJAYJKoZIhvcNAQkBFhdyYXltb25kLnBsYW50ZUBuaXN0
LmdvdjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM9S5KvYRty8rxoF
YUOHMAxhcdNbAyJszJ9QFzIWMJAxfDn5J8JztR5j9UBMsc1vJPJOWybpNbU+u9LD
Bz33fBPR/oSFRnjWqDU+nQcWRaVT57zJLmxAEQ4SHFWT4Nnel4ynymrIHpmyaMvk
MLy9O+uR1TBcZSW4OB5ohQik0h+TPyYqAYCV+yQ6g6WkbdbpwbMudPjJRQFOIeLn
43Jtllm5W84/ylhn1uq3XWuwqpEBaVNvmVAby+pTW0cqmbcuTBPgN1n4nruUlC1k
N3e/Z3Z8rGNAdz33WQLgTPtgLbMXx52ZhgDXSVjSGOVNEgLnR+/oAmelYX6if1XA
DZyfHfoyRbdReIT/MwziLUV7xMdXAxa5V0iYJix+lYTG7zZQA4ZJ+Y+OYkJye8YU
cSqBMXVYVlL/HpKkoGcDYNbQ4WfhZLCiKrhOGUzCRXzzwmNE0o3K7egJnD8/H/nG
tALfvx+/fHBhgToWRbV/2Aww1r5Qhc4gD0GJ3Hg4nDwqzOrSOME8FxIX/v1qw2L4
1UVAqcPhOrH/hc2A3pBoHKFw+9y1Bg+HM7/V73Bfs32XAartKatSKwdSuIe3LAbw
4vq1lzg0G9o/j8kngOGUFMw/vTc16j9ygKEYxDRGn3Qbmk6VhpFLf+h2MlUg/LwH
zL09pbePNGGOVu/pl4Ona7YKvgtBAgMBAAGjZjBkMB0GA1UdDgQWBBShafVb8CUH
YuMfksYSch1Ehsd2izAfBgNVHSMEGDAWgBS18EoNlBiCO3cz1BiNVrS0YEo4/zAS
BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAgEAVkuLJ9Q5fcAvllbfuaX5LnMwHwoU5ogVBMczwphPt+jOpO8OlNT8hTA9
Yk4/34sfYZUm8pVp7619fWV+G8YbAFnaRPmJnktH2IPkKjds8bJotvtPVVBcbrsn
N+/POpCDe5yQj1tK0AA2sPTGtPttRLkgOLkp8aVnQdG56uDtO3iTIe/Rws43TJAl
2d0Ln7kEI7hWMZnc9WrfFP48ODV6Im6Ygsv7CRvCceo8tJ3k3ljNnX5rFXNh03Rp
3mb4zXPwMWIUXbMdDPGTmX4qlUtLxbZMGY365cb7b51Wqb63ai33sPHVMNP/E68A
JDJZs5S4sZfPBQ4fe6E2pJ04GkIqC3+D+xhVLFAlBvqLqv5BwuT/E83/IxYCX8Wh
9gRQ1dG8oYe40XUPWbomG/3Bbfc1CQgi4MgcvIMeOtNR8xhYCxpwgM6L62dVU/W0
4wtLg+4glVOzsA6B5aQxCYHVPyCGaG/jqf65DfHUnXLBKiu2lgtANDYtZ0ArmZtd
8dO9jj3VQmURwDVV+nvkBbv3KemhaPBgUKleWNQcMbFZHSKhqVRrZQtHSP8I/W1G
ERi/NUwJMBQ+CnqICFolzVOqFg7wYM8Hluo9x/wjhK7oTUxAiX3VzD9Kb+43lZdP
vSi8q0+Segi9mzRFFA0kyyokNaHv3q//+31//9hpOX6KdDQhGvE=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGGTCCBAGgAwIBAgIUEPyRpUoEfR6IR5Q8+ImYofWwBxkwDQYJKoZIhvcNAQEL
BQAwgZMxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJNRDEVMBMGA1UEBwwMR2FpdGhl
cnNidXJnMQ0wCwYDVQQKDAROSVNUMQwwCgYDVQQLDANPREkxGzAZBgNVBAMMEk9B
Ui1EZXZPbmx5LVJvb3RDQTEmMCQGCSqGSIb3DQEJARYXcmF5bW9uZC5wbGFudGVA
bmlzdC5nb3YwHhcNMjQxMDI5MTQwODA0WhcNNDQxMDI0MTQwODA0WjCBkzELMAkG
A1UEBhMCVVMxCzAJBgNVBAgMAk1EMRUwEwYDVQQHDAxHYWl0aGVyc2J1cmcxDTAL
BgNVBAoMBE5JU1QxDDAKBgNVBAsMA09ESTEbMBkGA1UEAwwST0FSLURldk9ubHkt
Um9vdENBMSYwJAYJKoZIhvcNAQkBFhdyYXltb25kLnBsYW50ZUBuaXN0LmdvdjCC
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALnzNoQLmErev9zf6JzHtZYq
BekZi4YmNHnv43tRIdLHfnnuFDAjygLhYQfW+dWybTIzFqTOvHAHW8pBxmAZVEE1
s2Qo4EXUh91B7hhMLmMLVPStJjvjwXytFyBuBGjf4ZVpyRDuIrnwFbJODcWx/vyY
VJM/WL/t+s0ITqvi5CMLirqymKk2JY6WCmA1/lFQ0bc6bJK5NYfZa/efBjZHmgKV
gOj65uA3XoW1PmUNa41ArUdIvdiTfOVYHRObDpH7cnY2CVKmgKvdmjQTNZll60EH
xSDHE2N2rs3huLSEA/BJv1mmS+8vHwJdb7kKvMh4ORZknAk0Qn+1hubUVICVNEuS
gde+KIznl3jD+IgtRp8OlIDaxSHMyHBAcbDP5Va9Sdl9wMotMPugctOIVljrk5lK
GbxGgI6mzVLxiKjbSjRBh9GdfvLVcQOlAJqAhOM6OiPDDphLW2OlhYqP1kIZ3g6j
gb1WHTeiMWVF8lhqABBUDaHxnyx7Od13kBL7LZA8jJLK3Te/voTsaLRTmhvzlAYE
ExsxDX9t4XxevrLevj/bvDn6nak0vVy5iNQFQPkb9oEGunutaSho/kQhAaqsCYQW
t7kfAz2eoyn5iYG5ViJWzr6ltGLfr5p/54CvdanTcDboMaBu+b2+ADv83VydE8kt
Jl8XFijk2jHKW6lcJxndAgMBAAGjYzBhMB0GA1UdDgQWBBS18EoNlBiCO3cz1BiN
VrS0YEo4/zAfBgNVHSMEGDAWgBS18EoNlBiCO3cz1BiNVrS0YEo4/zAPBgNVHRMB
Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPftb
K5/U7E9u3cKrqRz49uF5RkNBP35Gn6gBz2Qane28NenVuDC3iKyJ3pf2n9LTJUKJ
JL6jfIzsLrbBH1JmWXFy1N1IROBRrguzGAlK+arSJRLnruINZkUtR8gkC8xf1Xh5
6gauobYyVXYNnew/Yn6xmANfREgkDTmvSQxTFVP1EEfkeSxKw2fIzebdGSmgcqk8
N30b4V2tir5oHIJk148epoeR7sYY13XGOF6UizeQj8Ign1hTYpDjpTBBOM9x3kEH
Q9W3LpWoS3kQBLcSFvRKz3ZYsNwEIotVqbeNh3/MyI7OIi721e6oNkX+kvQl2spY
UFUqCoCZJIiLuKhCYS50wfWtoXIfQXJut/mX2aGooHblYqP/pBjkLerxCBqaQ38r
SYKBBF/AB4ApwdT4nfGMKFpuhZulzo7CrOTGzvMm4Lq5x/+CovASD3S17WN9YEl8
uoRjHDx2e5AAvG6puEoKDstA6OBPYEmzqFo5z3tYr4/xJhbFHBi6rSW2G+C6Whsw
icEO6m++r43RIZ0MhN7GUWMlo2hTtf1fNEtsxBifPcZj7f/ETIdxjgts7+YBd0aI
uItxKvhmOc6RbbMxhde6DD8uxhiNYJZU6+nOZrX/pfPZSYqHOLe3EfSWq5yct64F
zvmvHTsg1Ci5LD/inEncYoYvfj+oplqOQMfswKk=
-----END CERTIFICATE-----
8 changes: 8 additions & 0 deletions common/ubuntubase/certs/dhparam.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
-----BEGIN DH PARAMETERS-----
MIIBCAKCAQEAmgCgolywcPljEBLu0bfTm/Wod4JbTfM5C/BIpkgwCC3OI5MGCZKV
Z+WO01tCYWmOhPkRjYsOaXAojQGporWqHPSjC7GiigYPXVN0QLPCuKmOzrLEha2h
M7g4L674j3Fuhdl+eQisfZ8mcbSK/PdnQ9NP3VzGrsrO5CH6+JtTHJASh5YEN/DL
1HIYWNmHctiubq623kuJa/7JvrOS4z8Xr0Yvq4dIQPwop++vpadBAm6hdzPP22/h
sZfYFNVkgKQEWa8H0CAItmWegAM4l4jOAEEnL0cymPqCBz7X6jKyKZ67rF7cWmma
hwyWFPL4k+dekttCBLyIOzwih1OHU+gTywIBAg==
-----END DH PARAMETERS-----
27 changes: 27 additions & 0 deletions common/ubuntubase/certs/digicert-intermediate.cer
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN CERTIFICATE-----
MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaME0xCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg
U2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
ANyuWJBNwcQwFZA1W248ghX1LFy949v/cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83
nf36QYSvx6+M/hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bd
KpPDkC55gIDvEwRqFDu1m5K+wgdlTvza/P96rtxcflUxDOg5B6TXvi/TC2rSsd9f
/ld0Uzs1gN2ujkSYs58O09rg1/RrKatEp0tYhG2SS4HD2nOLEpdIkARFdRrdNzGX
kujNVA075ME/OV4uuPNcfhCOhkEAjUVmR7ChZc6gqikJTvOX6+guqw9ypzAO+sf0
/RR3w6RbKFfCs/mC/bdFWJsCAwEAAaOCAVowggFWMBIGA1UdEwEB/wQIMAYBAf8C
AQAwDgYDVR0PAQH/BAQDAgGGMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYY
aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMHsGA1UdHwR0MHIwN6A1oDOGMWh0dHA6
Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwN6A1
oDOGMWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RD
QS5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHQYDVR0OBBYEFA+AYRyCMWHVLyjnjUY4tCzh
xtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB
CwUAA4IBAQAjPt9L0jFCpbZ+QlwaRMxp0Wi0XUvgBCFsS+JtzLHgl4+mUwnNqipl
5TlPHoOlblyYoiQm5vuh7ZPHLgLGTUq/sELfeNqzqPlt/yGFUzZgTHbO7Djc1lGA
8MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls/3HB40f/1LkAtDdC
2iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8sjX7tN8Cp1Tm5gr8ZDOo0rwAhaPit
c+LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopYJeS4d60tbvVS3bR0
j6tJLp07kzQoH3jOlOrHvdPJbRzeXDLz
-----END CERTIFICATE-----
18 changes: 18 additions & 0 deletions common/ubuntubase/html/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<title>oar</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to this page!</h1>
<p>If you see this page, you'll see that it is empty.</p>
<p><em>Will this change soon...? Yes it will! ;)</em></p>
</body>
</html>
Empty file.
Loading