mirror of
https://gitea.invidious.io/iv-org/documentation.git
synced 2024-08-15 00:53:34 +00:00
Compare commits
15 commits
14e75e8256
...
9ba26c6b43
Author | SHA1 | Date | |
---|---|---|---|
|
9ba26c6b43 | ||
|
3c2356b9b4 | ||
|
ee58285ebd | ||
|
7af7f1c7a1 | ||
|
0ff04d68bc | ||
|
5b5830b38b | ||
|
8e451d4365 | ||
|
775e3ed3ea | ||
|
f14d71df20 | ||
|
ea4d456cb4 | ||
|
1cb3ea84ca | ||
|
66572c14c7 | ||
|
4b308d03a6 | ||
|
4047372cef | ||
|
a83a6fcc41 |
4 changed files with 179 additions and 18 deletions
149
.github/workflows/add-instance-updown.yml
vendored
Normal file
149
.github/workflows/add-instance-updown.yml
vendored
Normal 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
|
||||
})
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -9,7 +9,8 @@ _This list is incomplete. You can help by expanding it._
|
|||
| **Site-wide parameters** | |
|
||||
| _Dark mode_ | Configure default theme without setting cookies |
|
||||
| `dark_mode=true` | Use dark theme |
|
||||
| `dark_mode=false` | Use light theme |
|
||||
| `dark_mode=false` | Use light theme |
|
||||
| `dark_mode=auto` | Use system/browser theme
|
||||
| _Thin mode_ | Load HTML, CSS, JS and video elements (disables images) |
|
||||
| `thin_mode=true` | Enabled |
|
||||
| `thin_mode=false` | Disabled |
|
||||
|
@ -52,10 +53,20 @@ _This list is incomplete. You can help by expanding it._
|
|||
| `quality=dash` | [DASH](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) |
|
||||
| `quality=hd720` | 720p |
|
||||
| `quality=medium` | 480p |
|
||||
| _Quality_DASH_ | Default player quality when using DASH (default is Auto) |
|
||||
| `quality_dash=auto` | Automatically change quality based on network conditions |
|
||||
| `quality_dash=best` | Automatically use the best quality avalible |
|
||||
| `quality_dash=###` | always use desired quality (480, 720, etc). |
|
||||
| `quality_dash=worst` | Automatically use the worst quality avalible |
|
||||
| _Related Videos_ | Show "Related videos" tab on the right-hand side |
|
||||
| `related_videos=false` | Disabled |
|
||||
| _Comments_ | Show comments below the video|
|
||||
| `comments=false` | Disabled |
|
||||
| _Extended Description_ | Extend Video Description by default |
|
||||
| `extend_desc=true` | Enabled
|
||||
| _Player Style_ | Video Player UI |
|
||||
| `player_style=invidious` | Invidious, the default |
|
||||
| `player_style=youtube` | YouTube, using a centered play button and always visible video control bar |
|
||||
| _Speed_ | Default player speed, can be any positive number |
|
||||
| `speed=0.5` | Play at 0.5x speed |
|
||||
| `speed=2` | Play at 2x speed |
|
||||
|
@ -91,6 +102,4 @@ _This list is incomplete. You can help by expanding it._
|
|||
| _Region_ | Provide "hint" (as ISO 3166 country code) for Invidious to load trending videos from the specified region | |
|
||||
| `region=JP` | Load videos that are trending in Japan |
|
||||
| `region=DE` | Load videos that are trending in Germany |
|
||||
| **Player Style** | |
|
||||
| `player_style=invidious` | Invidious, the default |
|
||||
| `player_style=youtube` | YouTube, using a centered play button and always visible video control bar |
|
||||
|
||||
|
|
Loading…
Reference in a new issue