From b36bced0c597a7b89b4b9d100c4b52e670ff0526 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Thu, 9 Jan 2025 14:45:09 +0100 Subject: [PATCH 1/3] chore(tuto): review content overleaf --- tutorials/overleaf/index.mdx | 202 +++++++++++++++++++---------------- 1 file changed, 112 insertions(+), 90 deletions(-) diff --git a/tutorials/overleaf/index.mdx b/tutorials/overleaf/index.mdx index d0b635fd75..2cd190f2ee 100644 --- a/tutorials/overleaf/index.mdx +++ b/tutorials/overleaf/index.mdx @@ -5,79 +5,90 @@ meta: content: h1: Installing Overleaf Community Edition paragraph: This page shows you how to install Overleaf Community Edition on Ubuntu Linux -tags: media Overleaf ubuntu +tags: media Overleaf ubuntu categories: - instances dates: - validation: 2024-08-12 + validation: 2025-01-09 posted: 2023-10-02 --- -Overleaf is a collaborative writing and publishing system that uses LaTeX, a typesetting software that allows for the creation of structured, professional documents online. + +Overleaf is a collaborative writing and publishing system that uses LaTeX, a typesetting software that allows for creating structured, professional documents online. It is particularly favored by academics and professionals for producing scientific documents, research papers, theses, and presentations due to its precise formatting and styling capabilities. Overleaf also supports real-time collaboration between multiple authors. - - A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/identity-and-access-management/iam/concepts/#owner) status or [IAM permissions](/identity-and-access-management/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- [Owner](/identity-and-access-management/iam/concepts/#owner) status or [IAM permissions](/identity-and-access-management/iam/concepts/#permission) - An [SSH key](/identity-and-access-management/organizations-and-projects/how-to/create-ssh-key/) -- An [Instance](/compute/instances/how-to/create-an-instance/) running on the Docker image or with Docker installed +- An [Instance](/compute/instances/how-to/create-an-instance/) with Docker installed and at least **30 GB of storage** - Installed `git` on your Instance - For optimal performance, we recommend running this tutorial on an Instance with more than 30 GB of storage. - - - Make sure to run this tutorial on an Instance running the [Docker InstantApp image](/tutorials/docker-instantapp/) or make sure [Docker is installed](/tutorials/install-docker-ubuntu-jammy-jellyfish/) on the Instance, as Overleaf requires Docker. - +- Properly configured DNS A/AAAA records pointing to your Instance's public IP -## Installing Overleaf community edition - -1. Connect to your Instance using SSH: - ``` +### Preparing the Environment +1. SSH into your Instance: + ```bash ssh root@ ``` -2. Use `git` to download the Overleaf code repository: +2. Ensure Docker is installed: + - If Docker is not installed, follow the [Docker Installation Guide](/tutorials/install-docker-ubuntu-jammy-jellyfish/). + - Verify Docker installation: + ```bash + docker --version + ``` + +3. Create a directory for Overleaf: + ```bash + mkdir -p /opt/overleaf-toolkit + cd /opt/overleaf-toolkit ``` + +4. Clone the Overleaf repository from GitHub: + ```bash git clone https://github.com/overleaf/toolkit.git /opt/overleaf-toolkit ``` -3. Enter the Overleaf `overleaf-toolkit` directory. - ``` + +5. Initialize the configuration: + ```bash cd /opt/overleaf-toolkit - ``` -4. Run the following command to copy the configuration files: - ``` ./bin/init ``` -5. Download and start the Overleaf container and its requirements: - ``` + +6. Start the application and it's containers: + ```bash ./bin/up ``` - - * If a web server is already running on port 80, be sure to stop it before executing the above command. - * Downloading and configuring the application for the first start may take some time. + + If a web server is already running on port 80, stop it before running the command. -6. Stop the application by pressing `CTRL+C`. -7. Open the file `./config/overleaf.rc` in a text editor and edit the `NGINX_HTTP_PORT=80` line. Set the value to `NGINX_HTTP_PORT=8877`, then save the file and exit the editor. -## Configuring a systemd script +## Stopping the application and updating Overleaf's configuration -Once Overleaf runs correctly, you can create a systemd daemon service. +1. Stop the application with `CTRL+C`. +2. Edit the Overleaf configuration file: + ```bash + nano ./config/overleaf.rc + ``` +3. Modify the following line: + ```bash + OVERLEAF_PORT=80 + ``` + Change it to: + ```bash + OVERLEAF_PORT=8877 + ``` +4. Save and exit. -1. Create and open the `/etc/systemd/system/overleaf.service` file in a text editor of your choice and paste the following content into it: - ``` - [Unit] - Description=Overleaf Community Edition - - [Service] - User=root - WorkingDirectory=/opt/overleaf-toolkit - ExecStart=/opt/overleaf-toolkit/bin/up - Restart=always - RestartSec=10 - [Install] - WantedBy=multi-user.target +## Configuring a systemd service +1. Create a systemd service file: + ```bash + nano /etc/systemd/system/overleaf.service + ``` +2. Add the following content: + ``` [Unit] Description=Overleaf Community Edition @@ -91,69 +102,70 @@ Once Overleaf runs correctly, you can create a systemd daemon service. [Install] WantedBy=multi-user.target ``` -2. Save the file and exit the text editor. -3. Reload systemd by running the following command: - ``` +3. Save and exit the editor. +4. Reload systemd: + ```bash systemctl daemon-reload ``` -4. Enable the `overleaf.service` to be started on reboot: - ``` +5. Enable and start the service: + ```bash systemctl enable overleaf.service - ``` -5. Start the Overleaf service: - ``` systemctl start overleaf.service ``` -6. Check the status of the Overleaf service: - ``` +6. Check the service status: + ```bash systemctl status overleaf.service ``` ## Installing LaTeX packages -The LaTeX packages can now be installed, using TeX Live. - -1. Run the following command to launch the Texlive manager update: - ``` - docker exec Overleaf Community Edition tlmgr update --self +1. Update the TeX Live Manager: + ```bash + docker exec sharelatex tlmgr update --self ``` -2. Run the following command to launch the full `texlive` installation: +2. Install the full TeX Live package: + ```bash + docker exec sharelatex tlmgr install scheme-full ``` - docker exec Overleaf Community Edition tlmgr install scheme-full - ``` - - The installation of `texlive` may take a while. - + + - Replace `sharelatex` with the name of the Share LateX container. Use `docker ps` to find it. + - The installation of `textlive` may take a while and take up a lot of storage space. Ensure your Instance has sufficent storage available. + -## Configuring Nginx +## Configuring SSL -This tutorial uses [NGINX](https://nginx.org/en/) with [Let's Encrypt](https://letsencrypt.org/) and [CertBot](https://certbot.eff.org/) as an SSL-enabled reverse proxy to secure the connection between the client and our server. +1. Install Certbot and nginx +```bash +apt install python3-certbot-nginx nginx +``` -1. Install Certbot on the server: - ``` - apt install python3-certbot-nginx - ``` -2. Generate the certificate, by running the following command: - ``` - sudo certbot --nginx certonly - ``` +2. Obtain an SSL Certificate +```bash +sudo certbot --nginx certonly +``` - SSL certificates issued by Let's Encrypt are valid for 90 days. Certbot comes with the option to automatically renew the certificate. -3. Configure a cron job that launches Certbot daily to check the status of the certificate. Open the crontab by typing: - ``` +3. Add a daily cron job for certificate renewal: + ```bash crontab -e ``` -4. Add the following line which will stop Nginx, renew the certificate, and restart the web server daily at 4:30 in the morning: + Add the following line to the crontab: + ```bash + 30 4 * * * certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start" ``` - 30 4 * * * /opt/letsencrypt/certbot-auto renew --pre-hook "service nginx stop" --post-hook "service nginx start" + +## Configuring Nginx + +1. Edit the Nginx configuration: + ```bash + nano /etc/nginx/sites-enabled/default ``` -5. Edit the `/etc/nginx/sites-enabled/default` file so that it looks like the example below. This allows you to configure Nginx in a way that will serve our Overleaf Community Edition site as the default site: +2. Replace the file content with: ``` server { listen 80; listen [::]:80; - server_name my.overleave-instance.tld; + server_name my.overleaf-instance.tld; location / { return 301 https://$server_name$request_uri; @@ -164,10 +176,10 @@ This tutorial uses [NGINX](https://nginx.org/en/) with [Let's Encrypt](https://l listen [::]:443 ssl ipv6only=on; listen 443 ssl; - server_name my.overleave-instance.tld; + server_name my.overleaf-instance.tld; - ssl_certificate /etc/letsencrypt/live/my.overleave-instance.tld/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/my.overleave-instance.tld/privkey.pem; + ssl_certificate /etc/letsencrypt/live/my.overleaf-instance.tld/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/my.overleaf-instance.tld/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; @@ -191,14 +203,24 @@ This tutorial uses [NGINX](https://nginx.org/en/) with [Let's Encrypt](https://l proxy_read_timeout 3m; proxy_send_timeout 3m; - access_log /var/log/nginx/Overleaf Community Edition.access.log; - error_log /var/log/nginx/Overleaf Community Edition.error.log; + access_log /var/log/nginx/overleaf.access.log; + error_log /var/log/nginx/overleaf.error.log; } } ``` -6. Restart Nginx with the following command: - ``` + + Replace `my.overleaf-instance.tld` with your Overleaf domain name in the configuration. + +3. Save and restart Nginx: + ```bash service nginx restart ``` - You can now reach your Overleaf installation at `https:///launchpad`. - Open a web browser and navigate to this page to set up your instance's administrator credentials, log in, and you can start drafting your documents, and invite collaborators to work with you. \ No newline at end of file + +## Verify your installation + +1. Access Overleaf via your browser at: + ``` + https:///launchpad/ + ``` +2. Follow the on-screen instructions to configure admin credentials. + From 0e2f02b14ba3c70f88ca582610dfb0e7c6069703 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Thu, 9 Jan 2025 14:56:41 +0100 Subject: [PATCH 2/3] chore(tuto): add content --- tutorials/overleaf/index.mdx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/tutorials/overleaf/index.mdx b/tutorials/overleaf/index.mdx index 2cd190f2ee..5e3eff2d6f 100644 --- a/tutorials/overleaf/index.mdx +++ b/tutorials/overleaf/index.mdx @@ -216,11 +216,10 @@ sudo certbot --nginx certonly service nginx restart ``` -## Verify your installation +## Creating a first admin user -1. Access Overleaf via your browser at: - ``` - https:///launchpad/ - ``` -2. Follow the on-screen instructions to configure admin credentials. +1. Open your browser and navigate to `/launchpad/`. A form displays, prompting you to set up your admin account by entering an email and password. After filling in the credentials, click **Register**. + +2. Follow the link to the login page (`/login>/`) and enter the credentials you just created. Upon successful login, you'll be directed to a welcome page. +To begin using Overleaf, click the green button at the bottom of the welcome page. For more information, how to use Overleaf, refer to the [official documentation](https://www.overleaf.com/learn). From a5cf0b058993a302b8caac65d3b5a462fde74159 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Thu, 9 Jan 2025 15:25:10 +0100 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: Rowena Jones <36301604+RoRoJ@users.noreply.github.com> --- tutorials/overleaf/index.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tutorials/overleaf/index.mdx b/tutorials/overleaf/index.mdx index 5e3eff2d6f..256384eaa2 100644 --- a/tutorials/overleaf/index.mdx +++ b/tutorials/overleaf/index.mdx @@ -26,7 +26,7 @@ It is particularly favored by academics and professionals for producing scientif - Installed `git` on your Instance - Properly configured DNS A/AAAA records pointing to your Instance's public IP -### Preparing the Environment +### Preparing the environment 1. SSH into your Instance: ```bash ssh root@ @@ -55,7 +55,7 @@ It is particularly favored by academics and professionals for producing scientif ./bin/init ``` -6. Start the application and it's containers: +6. Start the application and its containers: ```bash ./bin/up ``` @@ -139,7 +139,7 @@ It is particularly favored by academics and professionals for producing scientif apt install python3-certbot-nginx nginx ``` -2. Obtain an SSL Certificate +2. Obtain an SSL certificate ```bash sudo certbot --nginx certonly ``` @@ -222,4 +222,4 @@ sudo certbot --nginx certonly 2. Follow the link to the login page (`/login>/`) and enter the credentials you just created. Upon successful login, you'll be directed to a welcome page. -To begin using Overleaf, click the green button at the bottom of the welcome page. For more information, how to use Overleaf, refer to the [official documentation](https://www.overleaf.com/learn). +To begin using Overleaf, click the green button at the bottom of the welcome page. For more information on how to use Overleaf, refer to the [official documentation](https://www.overleaf.com/learn).