Compare commits

..

10 commits

Author SHA1 Message Date
MintMain21
9ba26c6b43
Merge 1cb3ea84ca into 3c2356b9b4 2024-04-30 17:35:37 +01:00
Victor Lin
3c2356b9b4
Update macOS install (#545)
* Remove install for shards

shards is not available as a Homebrew package. Instead, it comes with
the crystal package.

<https://crystal-lang.org/reference/1.12/man/shards/index.html#installation>

* Fix postgresql package name

* Add createdb

Fixes initial error:

    FATAL:  database "<user>" does not exist

<https://stackoverflow.com/a/17936043>

* Clone repo before PostgreSQL setup

The PostgreSQL setup uses config files from the repo.

* Fix PostgreSQL name in headings

* Give PostgreSQL role login permissions

Fixes an error upon running the first script:

   FATAL:  role "kemal" is not permitted to log in

* Remove nonexistent script

* Use make for Invidious setup

Copied from Linux section
2024-04-29 11:20:07 +02:00
Émilien (perso)
ee58285ebd
use official uptime website for updown.io 2024-04-22 23:40:29 +02:00
Émilien (perso)
7af7f1c7a1
update uptime link to updown.io 2024-04-22 23:38:27 +02:00
Émilien (perso)
0ff04d68bc
remove inv.n8pjl.ca
close https://github.com/iv-org/documentation/issues/543
2024-04-22 23:27:53 +02:00
Emilien Devos
5b5830b38b fix Unexpected token ')' 2024-04-22 00:22:50 +02:00
Emilien Devos
8e451d4365 trying to add the new check to the status page 2024-04-22 00:20:29 +02:00
Emilien Devos
775e3ed3ea no need external library 2024-04-22 00:07:13 +02:00
Emilien Devos
f14d71df20 correctly send the json body 2024-04-22 00:03:29 +02:00
TheFrenchGhosty
ea4d456cb4
Add a CI to add instances to updown (#525)
* Add a CI to add instances to updown

* improve adding new instance to updown

---------

Co-authored-by: Emilien Devos <4016501+unixfox@users.noreply.github.com>
2024-04-21 23:49:47 +02:00
3 changed files with 165 additions and 13 deletions

View file

@ -0,0 +1,149 @@
name: Add instance to updown.io
on:
issues:
types: [opened, reopened]
jobs:
replycomment:
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: actions/checkout@v3
if: contains(github.event.issue.labels.*.name, 'instance-add')
- uses: actions/setup-node@v3
if: contains(github.event.issue.labels.*.name, 'instance-add')
with:
node-version: 16
- run: npm install request linkifyjs
if: contains(github.event.issue.labels.*.name, 'instance-add')
- uses: actions/github-script@v6
if: contains(github.event.issue.labels.*.name, 'instance-add')
with:
script: |
var issueInfo = (await github.rest.issues.get({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
})).data;
var linkify = require("linkifyjs");
var issueTitleParseUrl = linkify.find(issueInfo.title);
if (issueTitleParseUrl.length !== 0) {
if (issueInfo.title.includes(".onion")) {
var replyComment =
['Hello! I have detected that you are requesting to add an onion URL.',
'Please create a pull request instead for adding your onion url as an alternative to your clearnet URL: https://github.com/iv-org/documentation/edit/master/docs/instances.md'
].join('\n');
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: replyComment
});
await github.rest.issues.update({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
state: 'closed'
});
}
else {
var instanceHostname = (new URL(issueTitleParseUrl[0].href)).hostname;
var request = require("request");
var optionsAddNewCheck = { method: 'POST',
url: 'https://updown.io/api/checks?api-key=${{ secrets.UPDOWN_API_KEY }}',
json:true,
headers:
{ 'content-type': 'application/x-www-form-urlencoded' },
form:
{ url: 'https://' + instanceHostname,
period: '300',
mute_until: 'forever',
published: 'true',
alias: instanceHostname,
string_match: 'An alternative front-end to YouTube' } };
request(optionsAddNewCheck, async function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
if (body.token) {
var optionsGetStatusPages = {
method: 'GET',
url: 'https://updown.io/api/status_pages?api-key=${{ secrets.UPDOWN_API_KEY }}',
json: true
};
request(optionsGetStatusPages, async function (error, response, body) {
if (error) throw new Error(error);
const statusPage = body.filter(element => element.token === "resvf");
let checksOfStatusPage = statusPage[0].checks;
checksOfStatusPage.push(body.token)
var optionsAddCheckToStatusPage = {
method: 'PUT',
url: 'https://updown.io/api/status_pages/resvf?api-key=${{ secrets.UPDOWN_API_KEY }}',
headers: {
'content-type': 'application/json'
},
json: {checks: checksOfStatusPage}
};
request(optionsAddCheckToStatusPage, async function (error, response, body) {
if (error) throw new Error(error);
console.log(body)
});
});
var replyComment =
['Hello! Your instance has been added to our monitoring system: https://updown.io/' + body.token,
'You need to wait 30 days before we add your instance, this is to evaluate that your instance will keep a good uptime for one month.',
'',
'Make sure you double checked all the mandatory checks or this will slow down the process of adding your instance!',
'',
'Please consult these two important tutorials:',
'',
'- Escaping the YouTube block ([403 errors in playback](https://github.com/iv-org/invidious/issues/4045)): https://docs.invidious.io/ipv6-rotator/',
'',
'- Improving the performance and the stability of your public instance: https://docs.invidious.io/improve-public-instance/',
'',
'It is highly recommended to follow these tutorials because it will allow the instance to stay stable and performant over the long term.',
'',
'Please consider joining the Matrix room for public instance maintainers by joining our Matrix room: https://matrix.to/#/#invidious:matrix.org',
'then pinging @ unixfox, @ TheFrenchGhosty and @ SamantazFox for asking to be invited to the Matrix room.',
'We discuss troubles managing a public instance, sharing some advices and more.'
].join('\n');
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: replyComment
})
await github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['wait-30-days']
})
}
});
}
}
else {
var replyComment =
['Domain not detected in the title, please edit the title by correcting it like this:',
'Issue title example: `[New instance] https://myinstance.com`'
].join('\n');
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: replyComment
})
}

View file

@ -138,7 +138,7 @@ git clone https://github.com/iv-org/invidious
exit
```
#### Set up PostgresSQL
#### Set up PostgreSQL
```bash
systemctl enable --now postgresql
@ -177,14 +177,22 @@ systemctl enable --now invidious.service
```bash
brew update
brew install shards crystal postgres imagemagick librsvg
brew install crystal postgresql imagemagick librsvg
```
#### Set up PostgresSQL
#### Clone the Invidious repository
```bash
git clone https://github.com/iv-org/invidious
cd invidious
```
#### Set up PostgreSQL
```bash
brew services start postgresql
psql -c "CREATE ROLE kemal WITH PASSWORD 'kemal';" # Change 'kemal' here to a stronger password, and update `password` in config/config.yml
createdb
psql -c "CREATE ROLE kemal WITH LOGIN PASSWORD 'kemal';" # Change 'kemal' here to a stronger password, and update `password` in config/config.yml
createdb -O kemal invidious
psql invidious kemal < config/sql/channels.sql
psql invidious kemal < config/sql/videos.sql
@ -193,7 +201,6 @@ psql invidious kemal < config/sql/users.sql
psql invidious kemal < config/sql/session_ids.sql
psql invidious kemal < config/sql/nonces.sql
psql invidious kemal < config/sql/annotations.sql
psql invidious kemal < config/sql/privacy.sql
psql invidious kemal < config/sql/playlists.sql
psql invidious kemal < config/sql/playlist_videos.sql
```
@ -201,12 +208,10 @@ psql invidious kemal < config/sql/playlist_videos.sql
#### Set up Invidious
```bash
git clone https://github.com/iv-org/invidious
cd invidious
shards install --production
crystal build src/invidious.cr --release
make
# Configure config/config.yml as you like
cp config/config.example.yml config/config.yml
# Configure config/config.yml how you want
```
### Windows

View file

@ -1,6 +1,6 @@
# Invidious Instances
[Uptime History provided by Uptimerobot](https://stats.uptimerobot.com/89VnzSKAn)
[Uptime History provided by updown.io](https://uptime.invidious.io)
[Instances API](https://api.invidious.io/)
@ -54,8 +54,6 @@
* [invidious.nerdvpn.de](https://invidious.nerdvpn.de) 🇺🇦
* [inv.n8pjl.ca](https://inv.n8pjl.ca) 🇨🇦
* [invidious.jing.rocks](https://invidious.jing.rocks) 🇯🇵
* [vid.lilay.dev](https://vid.lilay.dev) 🇸🇬 (uses Cloudflare)