Skip to content

[Snyk] Security upgrade nginx from 1.25-alpine to 1.27.4-alpine #81

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 2 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
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

WORKDIR /backend

RUN apt-get update && \

Check failure on line 13 in Dockerfile

View workflow job for this annotation

GitHub Actions / format

DL3008 warning: Pin versions in apt get install. Instead of `apt-get install <package>` use `apt-get install <package>=<version>`
apt-get install --no-install-recommends -y \
musl-tools

Expand All @@ -23,7 +23,7 @@

RUN mdbook build

FROM nginx:1.25-alpine
FROM nginx:1.27.4-alpine

ARG DATE_CREATED

Expand Down
20 changes: 10 additions & 10 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Summary

- [نیکاس](index.md)
- [نمونه های مشابه](similar.md)
- [شروع به کار](getting-started/index.md)
- [نیازمندی ها](getting-started/requirements.md)
- [نصب](getting-started/install.md)
- [اجرا](getting-started/run.md)
- [تنظیمات](config/index.md)
- [سرور](config/server.md)
- [کلاینت](config/client.md)
- [داکر](config/docker.md)
- [نیکاس](index.md)
- [نمونه های مشابه](similar.md)
- [شروع به کار](getting-started/index.md)
- [نیازمندی ها](getting-started/requirements.md)
- [نصب](getting-started/install.md)
- [اجرا](getting-started/run.md)
- [تنظیمات](config/index.md)
- [سرور](config/server.md)
- [کلاینت](config/client.md)
- [داکر](config/docker.md)
10 changes: 5 additions & 5 deletions src/config/client.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,9 @@ or

برای مثال اگر مقدار این گزینه را برابر `"3,3-"` قرار دهید باعث می‎شود حالات زیر اتفاق بیوفتد :

- ایجاد کلاس `nikas-vote-level-0` برای نظرات با امتیاز کمتر از `منفی 3`
- ایجاد کلاس `nikas-vote-level-1` برای نظرات با امتیاز بین `منفی 3` و `دو`
- ایجاد کلاس `nikas-vote-level-2` برای نظرات با امتیاز `دو` و بیشتر
- ایجاد کلاس `nikas-vote-level-0` برای نظرات با امتیاز کمتر از `منفی 3`
- ایجاد کلاس `nikas-vote-level-1` برای نظرات با امتیاز بین `منفی 3` و `دو`
- ایجاد کلاس `nikas-vote-level-2` برای نظرات با امتیاز `دو` و بیشتر

می‎توانید از این کلاس ها برای ظاهرسازی مناسب نظرات استفاده کنید. برای مثال به ازای امتیاز برای آن ها از آیکون ستاره استفاده کنید.

Expand All @@ -137,8 +137,8 @@ or

با استفاده از این گزینه می‎توانید قالب پیشفرض نیکاس را انتخاب کنید. دو مقدار معتبر وجود دارد :

- `light` : قالب روشن
- `dark` : قالب تیره
- `light` : قالب روشن
- `dark` : قالب تیره

> در صورتی که مقدار وارد شده معتبر نباشد ٬ قالب روشن استفاده خواهد شد.

Expand Down
6 changes: 3 additions & 3 deletions src/config/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

در این بخش تنظیمات نیکاس را به صورت **سرور** و **کلاینت** بررسی می‎کنیم.

- [سرور](server.md)
- [کلاینت](client.md)
- [سرور](server.md)
- [کلاینت](client.md)

همچنین به بررسی تنظیمات لازم برای Docker می‎پردازیم

- [داکر](docker.md)
- [داکر](docker.md)
26 changes: 13 additions & 13 deletions src/config/server.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ env NIKAS_SETTINGS=path/to/nikas.cfg nikas

حال به بررسی تنظیمات مختلف سرور می‎پردازیم :

- [General](#general)
- [Moderation](#moderation)
- [Server](#server)
- [SMTP](#smtp)
- [Guard](#guard)
- [Hash](#hash)
- [RSS](#rss)
- [Admin](#admin)
- [General](#general)
- [Moderation](#moderation)
- [Server](#server)
- [SMTP](#smtp)
- [Guard](#guard)
- [Hash](#hash)
- [RSS](#rss)
- [Admin](#admin)

## General

Expand Down Expand Up @@ -85,8 +85,8 @@ host =

سیستم اعلام دریافت نظر برای نظرات جدید :

- **stdout** : این مورد به صورت پیشفرض فعال بوده و نظرات جدید در قالب خروجی عادی در ترمینال نمایش داده می‎شوند
- **smtp** : اعلان از طریق ایمیل برای شما ارسال خواهد شد. توجه داشته باشید که در صورت استفاده از این گزینه باید تنظیمات [SMTP](#smtp) را نیز انجام دهید.
- **stdout** : این مورد به صورت پیشفرض فعال بوده و نظرات جدید در قالب خروجی عادی در ترمینال نمایش داده می‎شوند
- **smtp** : اعلان از طریق ایمیل برای شما ارسال خواهد شد. توجه داشته باشید که در صورت استفاده از این گزینه باید تنظیمات [SMTP](#smtp) را نیز انجام دهید.

### reply-notifications

Expand Down Expand Up @@ -350,9 +350,9 @@ password =

در نهایت روند اعتبارسنجی به کلی تغییر یافت و از روش های جایگزین برای این مورد استفاده شد. از آنجایی که در نیکاس جهت استفاده از پنل مدیریت نیاز به تعریف حساب کاربری خاصی نداریم ، پس مسلما یک کلمه عبور ساده جهت احراز هویت کافی است. یکی از اولین راه ها استفاده از `SHA-256` خواهد بود که در سال های اخیر مشکلاتی رو نیز به همراه داشته :

- [CWE-327](https://cwe.mitre.org/data/definitions/327.html)
- [CWE-328](https://cwe.mitre.org/data/definitions/328.html)
- [CWE-916](https://cwe.mitre.org/data/definitions/916.html)
- [CWE-327](https://cwe.mitre.org/data/definitions/327.html)
- [CWE-328](https://cwe.mitre.org/data/definitions/328.html)
- [CWE-916](https://cwe.mitre.org/data/definitions/916.html)

از این رو `SHA-256` به کلی کنار گذاشته شد و به سراغ [Argon2](https://en.wikipedia.org/wiki/Argon2) رفتیم. یک الگوریتم KDF که در امر رمزنگاری بسیار بهینه تر عمل می‎کند. این کتابخانه در نسخه [1.1.1](https://github.com/Nikas-Project/Server/releases/tag/1.1.1) به نیکاس اضافه شد و هم اکنون در دسترس است.

Expand Down
6 changes: 3 additions & 3 deletions src/getting-started/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

در این بخش به بررسی نیازمندی های سخت افزاری و نرم افزاری می پردازیم و نیکاس را نصب می کنیم :

- [نیازمندی ها](requirements.md)
- [نصب](install.md)
- [اجرا](run.md)
- [نیازمندی ها](requirements.md)
- [نصب](install.md)
- [اجرا](run.md)
32 changes: 16 additions & 16 deletions src/getting-started/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

راه های مختلفی برای نصب نیکاس وجود داره :

- [Python Package](#python-package)
- [Source](#source)
- [Docker](#docker)
- [Kubernetes](#kubernetes)
- [Python Package](#python-package)
- [Source](#source)
- [Docker](#docker)
- [Kubernetes](#kubernetes)

قبل از شروع به نصب ، ابتدا صفحه [پیش نیازها](requirements.md) را مطالعه کنید.

Expand Down Expand Up @@ -93,8 +93,8 @@ docker run -d --rm --name nikas -p 127.0.0.1:8080:8080 -v /opt/nikas:/config -v

از آنجایی که برای سرور نیکاس ایمیج داکری در اختیار دارید ٬ استقرار آن روی کلاستر Kubernetes نیز به راحتی صورت می‎گیرد. قبل از شروع به دو نکته توجه داشته باشید:

- جهت اعمال کانفیگ های مختلف باید از ConfigMap استفاده کنید.
- جهت ذخیره سازی دیتابیس باید از PersistentVolumeClaim استفاده کنید.
- جهت اعمال کانفیگ های مختلف باید از ConfigMap استفاده کنید.
- جهت ذخیره سازی دیتابیس باید از PersistentVolumeClaim استفاده کنید.

فایل Deployment نمونه در [مخزن نیکاس موجود است](https://github.com/Nikas-Project/Server/blob/master/kubernetes/deployment.yml). تنظیمات مورد نظر خودتان را اعمال کرده و نیکاس را مستقر کنید:

Expand All @@ -104,21 +104,21 @@ kubectl apply -f nikas-deployment.yaml

تنظیماتی که باید اعمال کنید شامل این موارد است:

- `image` : نام و تگ ایمیج داکری نیکاس
- `resources` : مشخصات منابع مورد نیاز برای اجرای نیکاس
- `PersistentVolumeClaim` : حجم مورد نیاز برای ذخیره سازی دیتابیس
- `ConfigMap` : کانفیگ های مورد نیاز برای اجرای نیکاس
- `Route` : اگر از OpenShift استفاده می‎کنید ٬ این بخش را جهت معرفی دامنه خود تنظیم نمایید. در غیر اینصورت این بخش را حذف کرده و از Ingress Controller مناسب استفاده نمایید.
- `image` : نام و تگ ایمیج داکری نیکاس
- `resources` : مشخصات منابع مورد نیاز برای اجرای نیکاس
- `PersistentVolumeClaim` : حجم مورد نیاز برای ذخیره سازی دیتابیس
- `ConfigMap` : کانفیگ های مورد نیاز برای اجرای نیکاس
- `Route` : اگر از OpenShift استفاده می‎کنید ٬ این بخش را جهت معرفی دامنه خود تنظیم نمایید. در غیر اینصورت این بخش را حذف کرده و از Ingress Controller مناسب استفاده نمایید.

### استقرار در کانتینر ابری ابرآروان

جهت استقرار نیکاس در کانتینر ابری ابرآروان ابتدا مراحل زیر را انجام دهید:

- ایجاد یک پروژه جدید ( یا استفاده از پروژه فعلی )
- ایجاد یک کلید دسترسی با مراجعه به تنظیمات / کلیدهای API ( [راهنما](https://www.arvancloud.com/help/fa/article/360034038654--%da%86%da%af%d9%88%d9%86%d9%87-API-Key-%db%8c%d8%a7-%da%a9%d9%84%db%8c%d8%af-%d8%af%d8%b3%d8%aa%d8%b1%d8%b3%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%e2%80%8c%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af%d8%9f) )
- تعریف یک زیردامنه برای نیکاس ( مثلا `nikas.example.com` ) و ثبت رکورد CNAME با مقدار زیر:
- ‍`nikas.example.com` → `default-gateway.ir-thr-at1.arvan.run.`
- دریافت [CLI](https://docs.arvancloud.com/fa/developer-tools/cli/) ابرآروان
- ایجاد یک پروژه جدید ( یا استفاده از پروژه فعلی )
- ایجاد یک کلید دسترسی با مراجعه به تنظیمات / کلیدهای API ( [راهنما](https://www.arvancloud.com/help/fa/article/360034038654--%da%86%da%af%d9%88%d9%86%d9%87-API-Key-%db%8c%d8%a7-%da%a9%d9%84%db%8c%d8%af-%d8%af%d8%b3%d8%aa%d8%b1%d8%b3%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%e2%80%8c%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af%d8%9f) )
- تعریف یک زیردامنه برای نیکاس ( مثلا `nikas.example.com` ) و ثبت رکورد CNAME با مقدار زیر:
- ‍`nikas.example.com` → `default-gateway.ir-thr-at1.arvan.run.`
- دریافت [CLI](https://docs.arvancloud.com/fa/developer-tools/cli/) ابرآروان

پس از انجام مراحل بالا می‎توانید نیکاس را مستقر کنید:

Expand Down
12 changes: 6 additions & 6 deletions src/getting-started/requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ sudo yum install python-setuptools python-virtualenv python-devel

نیازمندی های اصلی نیکاس :

- Python 3.7+ (+ devel headers)
- SQLite 3.3.8 or later
- Python 3.7+ (+ devel headers)
- SQLite 3.3.8 or later

در صورتی که تمایل به کامپایل و اجرای نیکاس از سورس را دارید ، باید لیست زیر را نصب داشته باشید :

- [Make](https://www.gnu.org/software/make/)
- C compiler
- [NodeJS](https://nodejs.org/en/download/)
- [NPM](https://npmjs.org/)
- [Make](https://www.gnu.org/software/make/)
- C compiler
- [NodeJS](https://nodejs.org/en/download/)
- [NPM](https://npmjs.org/)

> ❕ متاسفانه به دلیل برخی کتابخانه های استفاده شده در نیکاس امکان استفاده از NodeJS نسخه ۱۶ به بالا وجود ندارد. حتما از نسخه ۱۴ استفاده کنید.

Expand Down
8 changes: 4 additions & 4 deletions src/getting-started/run.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ password = secret_token

در اینجا چنین مواردی را تعریف کرده ایم :

- نام دیتابیس `example.db`
- آدرس وب سایتی که نظرات در آن مدیریت می شوند ( وبلاگ شما ) : `https://arash-hatami.ir`
- Host و Port مربوطه برای اجرای نیکاس : `localhost` - `1234`
- پنل مدیریت فعال بوده و رمز ورود آن `secret_token` ( این مورد رمز عبور خام و اصلی نیست ، بعدا در موردش صحبت می کنیم )
- نام دیتابیس `example.db`
- آدرس وب سایتی که نظرات در آن مدیریت می شوند ( وبلاگ شما ) : `https://arash-hatami.ir`
- Host و Port مربوطه برای اجرای نیکاس : `localhost` - `1234`
- پنل مدیریت فعال بوده و رمز ورود آن `secret_token` ( این مورد رمز عبور خام و اصلی نیست ، بعدا در موردش صحبت می کنیم )

جهت مشاهده اطلاعات بیشتر در مورد تنظیم سرور نیکاس به این صفحه بروید : [تنظیمات سرور](../config/server.md)
8 changes: 4 additions & 4 deletions src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@

در حال حاضر راه های زیادی برای رفع این مشکل وجود داره ولی با مسائل زیر مواجه خواهید شد :

- تحریم / فیلتر
- عدم پشتیبانی از زبان فارسی
- سنگین بودن کتابخانه
- ...
- تحریم / فیلتر
- عدم پشتیبانی از زبان فارسی
- سنگین بودن کتابخانه
- ...

نیکاس اینجا است تا مشکلات وبلاگ ها و سایت های پارسی زبان رو حل کنه 😀
10 changes: 5 additions & 5 deletions src/similar.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
نمونه های بسیار زیاد دیگری هم وجود داره. رایگان ، غیر رایگان ، متن باز و ...
در نیکاس ویژگی های اصلی و مفید هرکدام از اون ها وجود داره :

- متن باز
- سبک و کم حجم
- طراحی UI مدرن تر
- راحتی در استفاده
- ...
- متن باز
- سبک و کم حجم
- طراحی UI مدرن تر
- راحتی در استفاده
- ...
5 changes: 3 additions & 2 deletions theme/css/general.css
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@ body {

code {
direction: ltr;
font-family: "Source Code Pro", Consolas, "Ubuntu Mono", Menlo,
"DejaVu Sans Mono", monospace, monospace !important;
font-family:
"Source Code Pro", Consolas, "Ubuntu Mono", Menlo, "DejaVu Sans Mono",
monospace, monospace !important;
font-size: 0.875em; /* please adjust the ace font size accordingly in editor.js */
}

Expand Down
48 changes: 24 additions & 24 deletions theme/highlight.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,11 @@ var hljs = (function () {
? e
: n
: "start" === n[0].event
? e
: n
? e
: n
: e.length
? e
: n;
? e
: n;
}
function c(e) {
s +=
Expand Down Expand Up @@ -369,10 +369,10 @@ var hljs = (function () {
return n
? +n
: (function (e) {
return N.includes(e.toLowerCase());
})(e)
? 0
: 1;
return N.includes(e.toLowerCase());
})(e)
? 0
: 1;
}
const R = t,
y = r,
Expand Down Expand Up @@ -798,20 +798,20 @@ var hljs = (function () {
e.cached_variants
? e.cached_variants
: (function e(n) {
return (
!!n &&
(n.endsWithParent ||
e(n.starts))
);
})(e)
? r(e, {
starts: e.starts
? r(e.starts)
: null,
})
: Object.isFrozen(e)
? r(e)
: e
return (
!!n &&
(n.endsWithParent ||
e(n.starts))
);
})(e)
? r(e, {
starts: e.starts
? r(e.starts)
: null,
})
: Object.isFrozen(e)
? r(e)
: e
);
})("self" === e ? s : e);
}),
Expand Down Expand Up @@ -946,8 +946,8 @@ var hljs = (function () {
? "<br>"
: e
: f.tabReplace
? e.replace(/\t/g, f.tabReplace)
: e,
? e.replace(/\t/g, f.tabReplace)
: e,
)
: e;
}
Expand Down