• Stars
    star
    158
  • Rank 229,792 (Top 5 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 5 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Self-host Sentry for $5 per month

Sentry self-hosted

Sentry is a popular error tracking solution. They have a free tier, but it is rather limited. Prices for the hosted tier currently start at $26/mo.

This repository lets you set up a self-hosted instance of Sentry on Linode, for only $5/mo. You need a (sub-)domain such as sentry.example.com. Installation is mostly automatic and takes a little over 30 minutes in total.

1. Create a Linode account

If you don't already have one, create a Linode account. Use the promo code DOCS10 for a $10 credit.

2. Add a Linode

Create a Linode in Linode's Management interface. (If you haven't used them before: Linodes are simply private Linux servers.) For small projects, a Nanode for $5/mo is enough.

3. Update your DNS

The Linode management interface should now show the IP of your server. Update your domain's DNS settings so a new A record points to this IP. Typically, you'd use a subdomain such as sentry.myapp.com.

4. Install Debian 9

Open the management page for your new Linode. Click on Rebuild at the top. Select Debian 9 as the image and pick a password. Click Rebuild.

5. Increase swap size (if necessary)

Installing Sentry requires about 4GB of RAM. If you chose a Nanode instance above, it only has 1GB. Go to the main management page for your Linode. You should see two disks:

  • Debian 9 Disk
  • 256MB Swap Image

First, click on Edit next to Debian 9 Disk. Reduce its size by 5GB. Once this process is complete, Increase the size of the Swap Image by 5GB.

6. Install Sentry

Connect to your server via SSH. Clone this repository:

apt-get update
apt-get install git -y
git clone https://github.com/mherrmann/sentry-self-hosted.git

Use an editor such as vi to change the settings at the top of install.sh. Then, make the file executable and run it:

cd sentry-self-hosted
chmod +x install.sh
./install.sh

The first time you do this, the script will ask you to log out and back in again. Do this but don't yet run the script again.

Invoking install.sh for a second time takes about 30 minutes. We don't want this process to be interrupted in case your internet connection drops. So it is highly recommended to install the screen tool at this point. This keeps your terminal session alive in case there are problems with your internet.

To install screen, log into the server and type the following:

apt-get install screen -y

Then, launch screen:

screen

This shows some information. Press ENTER. You are now in a virtual terminal session hosted by screen. Now execute

cd sentry-self-hosted
./install.sh

again. You can detach from this terminal session by pressing Ctrl+A followed by D. To attach to the session again (either because you detached from it or because your connection dropped), type screen -r on the command line.

The installation will prompt you to create a super user at some point. Provide it with some values.

Once the installation is complete, the server will automatically reboot. You can now log into it with the user credentials you created.

7. Decrease swap size

Once installation is complete, it's a good idea to decrease the swap size again (in case you increased it). Just follow the same steps as in 5.

8. (Optional) enable backups

Linode can automatically back up your server for an extra $2 per month. You can enable this in the management interface for your Linode.

Enjoy!

More Repositories

1

fbs

Create Python GUIs with Qt in minutes
Python
3,624
star
2

selenium-python-helium

Selenium-python but lighter: Helium is the best Python library for web automation.
Python
3,428
star
3

fbs-tutorial

Tutorial for creating Python/Qt GUIs with fbs
Python
1,857
star
4

gitignore_parser

A spec-compliant gitignore parser for Python 3.5+
Python
119
star
5

java-generator-functions

An implementation of a Python-like yield(...) method in Java.
Java
88
star
6

matrixlock

Replace i3's lock screen by the Matrix.
Python
66
star
7

timer-cm

A Python context manager for measuring execution time
Python
45
star
8

fullcalendar-rightclick

Rightclick support for Adam Shaw's FullCalendar jQuery plugin.
HTML
36
star
9

pypxlib

Python bindings for the pxlib library for reading and writing Paradox databases.
Python
32
star
10

fullcalendar-columns

A FullCalendar extension that adds support for multiple columns (resources) per day.
JavaScript
28
star
11

pyqt-resources

Tips and code snippets for PyQt developers
Python
27
star
12

django-404-middleware

An alternative to Django's BrokenLinkEmailsMiddleware
Python
17
star
13

ArrowNavigation

Navigate with the arrow keys (left: up, right: open directory)
Python
17
star
14

Preview

Preview files with F3
Python
13
star
15

QuickLook

Call macOS's Quick Look (Shift+Space)
Python
11
star
16

fix

Fix any failing command with ChatGPT
Python
11
star
17

ProcessFS

Manage processes with the command 'Show processes'
Python
8
star
18

kph

KΓΆlner phonetik in Python
Python
7
star
19

MacOpen

Call macOS's native open command (⌘+Enter)
Python
5
star
20

SynchronizedBrowsing

Mirror your navigation steps in the opposite pane
Python
5
star
21

ChangeLocation

Launch GoTo with the current location (Cmd/Alt+D)
Python
4
star
22

SwitchPanesWithArrowKeys

Switch panes with the arrow keys (left: left pane, right: right pane)
3
star
23

celery-error-emails

Automatically send error emails about failing Celery tasks in your Django project
Python
1
star
24

chat

A simple chat application for Windows, Mac and Linux
Python
1
star
25

ExcludeMyIP

A Google Analytics tool to exclude your own (home/work) IP
Python
1
star
26

fbs-tutorial-shim

Helper for mherrmann/fbs-tutorial
Python
1
star