Skip to content

Instantly share code, notes, and snippets.

View alisafariir's full-sized avatar
🎯
Focusing

Ali Safari alisafariir

🎯
Focusing
View GitHub Profile
@alisafariir
alisafariir / monitor_docker.sh
Last active April 7, 2025 16:53
Set Up Docker Containers Alerts on Telegram
# create /usr/local/bin/monitor_docker.sh
# sudo chmod +x /usr/local/bin/monitor_docker.sh
#!/bin/bash
# Telegram bot settings
BOT_TOKEN="your_bot_token_here"
CHAT_ID="your_chat_id_here"
# Function to send Telegram message
@alisafariir
alisafariir / create-reverse-proxy-server-block
Created October 14, 2024 12:46
create reverse proxy nginx server block (with certbot certificate)
#!/bin/bash
read -p "Please enter domain: " domain
read -p "Please enter proxy port: " port
echo "Creating server block for $domain"
sudo mkdir -p /var/www/$domain
sudo chown -R $USER:$USER /var/www/$domain
sudo chmod -R 755 /var/www
@alisafariir
alisafariir / nginx-server-block.txt
Created July 14, 2024 11:59
Create Nginx Server Block Reverse Proxy With Certificate
sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www
sudo nano /etc/nginx/sites-available/example.com
server {
listen 80;
listen [::]:80;
@alisafariir
alisafariir / Dockerfile
Created June 29, 2024 07:10
Angular SSR Dockerfile
# Stage 1: Build the Angular application
FROM node:22.3.0-alpine AS build
WORKDIR /usr/src/app
# Copy package.json and package-lock.json
COPY package*.json ./
# Install dependencies
RUN npm i
@alisafariir
alisafariir / local-storage.service.ts
Created March 4, 2024 17:15
Angular LocalStorage Service With Encryption
import { Injectable } from '@angular/core';
import * as CryptoJS from 'crypto-js';
const SECRET_KEY = 'ooG7ImX5GKl6MQBX7GQU1Swi';
@Injectable({
providedIn: 'root',
})
export class StorageService {
set(key: string, value: unknown) {
const encrypted = CryptoJS.AES.encrypt(
@alisafariir
alisafariir / gsettings.bash
Last active April 26, 2023 19:59
Switch input language by shift and alt in ubuntu
$ gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Shift>Alt_L','<Shift>Alt_R']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Alt>Shift_L','<Alt>Shift_R']"
@alisafariir
alisafariir / launch.json
Created December 27, 2022 21:17
Nestjs vs code debugging
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Program",
"request": "launch",
"type": "node",
@alisafariir
alisafariir / react-router-layout.jsx
Last active December 16, 2018 17:48
react js routing in fixed layout. thanks to @madcoda
import React, { Component } from 'react'
import { BrowserRouter as Router, Route, Link, Match, Redirect, Switch } from 'react-router-dom'
import OverviewPage from './page/OverviewPage'
import AccountPage from './page/AccountPage'
/*
Layouts, inline define here for demo purpose
you may want to define in another file instead
*/
@alisafariir
alisafariir / mixins.scss
Last active August 27, 2018 11:11
Sass Useful Mixins
// Gradient Mixin
@mixin gradient($start, $end) {
background-color: $start;
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr=#{$start}, endColorstr=#{$end});
background-image: -moz-linear-gradient(center top, $start, $end);
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from($start), to($end));
}
// Border Raius Mixin
@mixin border-radius($radius) {