2 Commits

Author SHA1 Message Date
  vinay 608051843b fix favicons, and hugo.yaml 1 year ago
  vinay 0655f08132 fix blog posts 1 year ago
22 changed files with 303 additions and 2435 deletions
Split View
  1. +4
    -0
      content/blog/_index.md
  2. +3
    -2
      content/blog/contributing-to-debian.md
  3. +0
    -1
      content/blog/debian-maintainer.md
  4. +0
    -1
      content/blog/git-fosscommunity-in-update.md
  5. +0
    -111
      content/blog/interception-vimproved.md
  6. +0
    -117
      content/blog/mapping-of-physical-usb-ports-to-device-names.md
  7. +0
    -1
      content/blog/software-freedom-camp-2021.md
  8. +9
    -0
      content/docs/Debian/_index.md
  9. +1
    -1
      content/docs/_index.md
  10. +270
    -1
      content/docs/selfhosting/nextcloud.md
  11. +16
    -1
      hugo.yaml
  12. BIN
      static/android-chrome-192x192.png
  13. +0
    -440
      static/android-chrome-192x192.png?ref_type=heads
  14. BIN
      static/android-chrome-512x512.png
  15. +0
    -440
      static/android-chrome-512x512.png?ref_type=heads
  16. BIN
      static/apple-touch-icon.png
  17. BIN
      static/favicon-16x16.png
  18. +0
    -440
      static/favicon-16x16.png?ref_type=heads
  19. BIN
      static/favicon-32x32.png
  20. +0
    -439
      static/favicon-32x32.png?ref_type=heads
  21. BIN
      static/favicon.ico
  22. +0
    -440
      static/favicon.ico?ref_type=heads

+ 4
- 0
content/blog/_index.md View File

@ -0,0 +1,4 @@
---
title: "Blog"
next: /contributing-to-debian/
---

+ 3
- 2
content/blog/contributing-to-debian.md View File

@ -1,9 +1,10 @@
---
title: "Contributing to Debian"
date: 2022-07-30T20:01:24+05:30
weight: 10
authors:
- name: John Doe
link: https://example.com/johndoe
description: "Contributing to Debian through packaging "
type: post
---
# Debian


+ 0
- 1
content/blog/debian-maintainer.md View File

@ -4,7 +4,6 @@ date: 2023-03-28T20:01:24+05:30
weight: 10
description: "a debian maintainer now !!!"
tags: ["gitlab", "debian", "debian-maintainer" , "ruby"]
type: post
---


+ 0
- 1
content/blog/git-fosscommunity-in-update.md View File

@ -4,7 +4,6 @@ date: 2021-12-10T20:01:24+05:30
weight: 10
description: "Updating git.fosscommunity.in"
tags: ["git.fosscommunity.in", "debian", "fsci"]
type: post
---
Ahh, my first blog post. Good Beginnings (:


+ 0
- 111
content/blog/interception-vimproved.md View File

@ -1,111 +0,0 @@
---
title: "Interception Vimproved"
date: 2023-09-18T11:23:17+05:30
weight: 10
description: "Setting up Interception Vimproved on Debian Bookworm GNU/Linux"
tags: ["vim", "interception-tools", " gnu/linux" , "gnu","keyboard"]
draft: true
type: post
---
## Setting up Interception Vimproved on Debian Bookworm
I started learning vim few months ago and wanted to vim key bindings like shortcuts on my laptop after trying a mechanical hackable keyboard.
This blog post shows how to setup interception-vimproved using interception-tools on Debian Bookworm.
Step 1: Install the dependencies to build interception-vimproved on Debian Bookworm GNU/Linux
```
$ sudo apt install interception-tools meson libyaml-cpp-dev cmake
```
interception-tools is a small set of tools for input events of devices,that can be used to customize the behaviour of input keyboard mappings.
The advantage of interception-tools operates at lower level compared to xmodmap by using libevdev and libudev.
Step 2: Clone interception-vimproved repository and build
```
$ git clone "https://github.com/maricn/interception-vimproved"
$ cd interception-vimproved
$ sudo make install
```
Step 3: Create a file called udevmon.yaml in /etc/interception and paste the following contents into the file /etc/interception/udevmon.yaml
```
- JOB: "interception -g $DEVNODE | interception-vimproved /etc/interception-vimproved/config.yaml | uinput -d $DEVNODE"
DEVICE:
NAME: ".*((k|K)(eyboard|EYBOARD)|TADA68).*"
```
Step 4: Reload udevmon using systemctl
```
$ sudo systemctl restart udevmon
```
To change any keybindings or to add new mappings the config file is present in config.yaml located in /etc/interception-vimproved/
my config.yaml has the below shortcuts
```
- intercept: KEY_CAPSLOCK
ontap: KEY_ESC
onhold: KEY_LEFTCTRL
- intercept: KEY_ENTER
# not necessary: ontap: KEY_ENTER is inferred if left empty
onhold: KEY_RIGHTCTRL
# this is a layer. hold space (onhold) contains several remappings
- intercept: KEY_SPACE
onhold:
# special chars
- from: KEY_E
to: KEY_ESC
# alternative syntax
- {from: KEY_D, to: KEY_DELETE}
- {from: KEY_B, to: KEY_BACKSPACE}
# vim home row
- {from: KEY_H, to: KEY_LEFT}
- {from: KEY_J, to: KEY_DOWN}
- {from: KEY_K, to: KEY_UP}
- {from: KEY_L, to: KEY_RIGHT}
# vim above home row
- {from: KEY_Y, to: KEY_HOME}
- {from: KEY_U, to: KEY_PAGEDOWN}
- {from: KEY_I, to: KEY_PAGEUP}
- {from: KEY_O, to: KEY_END}
# number row, to F keys
- {from: KEY_1, to: KEY_F1}
- {from: KEY_2, to: KEY_F2}
- {from: KEY_3, to: KEY_F3}
- {from: KEY_4, to: KEY_F4}
- {from: KEY_5, to: KEY_F5}
- {from: KEY_6, to: KEY_F6}
- {from: KEY_7, to: KEY_F7}
- {from: KEY_8, to: KEY_F8}
- {from: KEY_9, to: KEY_F9}
- {from: KEY_0, to: KEY_F10}
- {from: KEY_MINUS, to: KEY_F11}
- {from: KEY_EQUAL, to: KEY_F12}
# xf86 audio
- {from: KEY_M, to: KEY_MUTE}
- {from: KEY_COMMA, to: KEY_VOLUMEDOWN}
- {from: KEY_DOT, to: KEY_VOLUMEUP}
# mouse navigation
- {from: BTN_LEFT, to: BTN_BACK}
- {from: BTN_RIGHT, to: BTN_FORWARD}
```
Arch has interception-tools already packaged here is the [link](https://wiki.archlinux.org/title/Interception-tools)
```
:wq
```

+ 0
- 117
content/blog/mapping-of-physical-usb-ports-to-device-names.md View File

@ -1,117 +0,0 @@
---
title: "Mapping of Physical USB ports to Device Name on GNU/Linux"
date: 2023-08-29T11:19:15+05:30
weight: 10
description: "Mapping of Physical USB ports to Device Names (/dev/sda) on GNU/Linux"
tags: ["usb", "linux", "gnu/linux" , "gnu"]
type: post
draft: true
---
## How to Map Physical USB ports to Device Names on GNU/Linux
```bash{filename="lsusb command"}
$ lsusb
Bus 002 Device 004: ID 04b3:3025 IBM Corp. NetVista Full Width Keyboard
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 123: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 003 Device 002: ID 2109:0815 VIA Labs, Inc. USB3.0 Hub
$ lsusb -t
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
|__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/7p, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 4: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 2: Dev 123, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
|__ Port 3: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
|__ Port 4: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
```
"lsusb" is a utility of "usbutils" in GNU/Linux to display information about the USB Buses and the USB's attached to the buses.The output of the command displays the VendorID:ProductID and to which bus it is attached,the "Kingston Technology DataTraveler" bearing the VendorID:ProductID (0951:1666) attached to bus 003, the lsusb command with option "-t" provides a tree like output in a hierarchial structure.
"lsblk" is a tree-like structure to identify devices and their partitions,and also displays device name (/dev/sd* if its a hard disk,/dev/nvme0n1 in case of SSD),size of the drive/partition, whether it is a disk/partition and the device's mountpoints,here the /dev/sda* is the hard disk and sda1/2/5 are the partitions of the hard disk and /dev/sdb is the Kingston USB drive connected.
```bash
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 119.2G 0 disk
├─sda1 8:1 0 118.3G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 976M 0 part [SWAP]
sdb 8:16 1 28.9G 0 disk
sr0 11:0 1 1024M 0 rom
```
## Suppose if there are multiple USB sticks attached to mutiple physical USB ports how to know which device names is mapped to which USB port ?
If there are multiple USB's attached how do we get to know USB drive's device file and to which port that USB is connected ?
The answer is by /dev/disk/*
Everything in GNU/Linux is either a file or a directory,so even the disk are represented as files in GNU/Linux.
```bash
$ ls -ltrh /dev/disk/
total 0
drwxr-xr-x 2 root root 100 Aug 28 12:28 by-partuuid
drwxr-xr-x 2 root root 100 Aug 29 09:49 by-uuid
drwxr-xr-x 2 root root 260 Aug 29 09:49 by-path
drwxr-xr-x 2 root root 60 Aug 29 09:49 by-label
drwxr-xr-x 2 root root 160 Aug 29 09:49 by-id
drwxr-xr-x 2 root root 260 Aug 29 09:49 by-diskseq
```
The USB disks can be identified by the Partition UUID, UUID of the disk, by path, by label of the disk and also by disk sequence.
### By UUID(Universally Unique Identifier)
```bash{filename="by uuid"}
$ cat /etc/fstab
UUID=3341b336-0c26-4079-b3aa-faca8e2dd8b6 / ext4 errors=remount-ro 0 1
UUID=53b53d97-b5e4-43fe-b560-2a01f119b6cf none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
$ ls -ltrh /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Aug 22 10:40 3341b336-0c26-4079-b3aa-faca8e2dd8b6 -> ../../sda1
lrwxrwxrwx 1 root root 10 Aug 22 10:40 53b53d97-b5e4-43fe-b560-2a01f119b6cf -> ../../sda5
lrwxrwxrwx 1 root root 9 Aug 29 09:49 2010-10-06-11-43-04-00 -> ../../sdb
```
The device /dev/disk/by-uuid/3341b336-0c26-4079-b3aa-faca8e2dd8b6 is simply a symbolic link to actual an device,the reason being this is device name may change depending whether disk is attached or not,whereas these links will point to the same drive,so henceforth safer to use.
### By-Label
```bash{filename="by-label"}
$ ls -ltrh /dev/disk/by-label/
total 0
lrwxrwxrwx 1 root root 9 Aug 29 09:49 VINAY-USB -> ../../sdb
```
Labels are easy, it avoids confusion in identifying disk, instead of remembering /dev/sda device file names.
### By-Path
```bash{filename="by-path"}
$ ls -ltrh /dev/disk/by-path/
total 0
lrwxrwxrwx 1 root root 9 Aug 22 10:40 pci-0000:00:1f.2-ata-2.0 -> ../../sda
lrwxrwxrwx 1 root root 9 Aug 22 10:40 pci-0000:00:1f.2-ata-2 -> ../../sda
lrwxrwxrwx 1 root root 10 Aug 22 10:40 pci-0000:00:1f.2-ata-2-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Aug 22 10:40 pci-0000:00:1f.2-ata-2.0-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Aug 22 10:40 pci-0000:00:1f.2-ata-2-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Aug 22 10:40 pci-0000:00:1f.2-ata-2.0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Aug 22 10:40 pci-0000:00:1f.2-ata-2-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Aug 22 10:40 pci-0000:00:1f.2-ata-2.0-part5 -> ../../sda5
lrwxrwxrwx 1 root root 9 Aug 22 10:40 pci-0000:00:1f.2-ata-3.0 -> ../../sr0
lrwxrwxrwx 1 root root 9 Aug 22 10:40 pci-0000:00:1f.2-ata-3 -> ../../sr0
lrwxrwxrwx 1 root root 9 Aug 29 09:49 pci-0000:00:14.0-usb-0:4.2:1.0-scsi-0:0:0:0 -> ../../sdb
```
Here /dev/sdb is the USB device attached and "pci-0000:00:14.0-usb-0:4.2:1.0-scsi-0:0:0:0" file which represents the USB device describes that the USB device is connected from PCI bus to SCSI adapter."by-path" is the pci path of the disk device. this device file name is created depending on the shortest physical path to the device.
"/dev/sda" the first SCSI drive on the first SCSI bus,/dev/sdb is the second SCSI drive and /dev/sdc is the third SCSI drive and so on.
```
:wq
```

+ 0
- 1
content/blog/software-freedom-camp-2021.md View File

@ -4,7 +4,6 @@ date: 2022-03-29T20:01:24+05:30
weight: 10
description: "Learnings from software freedom camp"
tags: ["git.fosscommunity.in", "debian", "fsci"]
type: post
---


+ 9
- 0
content/docs/Debian/_index.md View File

@ -0,0 +1,9 @@
---
title: Debian Packaging
type: docs
next: docs/hacks/
sidebar:
open: true
---
Tutorials,configs and hacks related to Debian Packaging.

+ 1
- 1
content/docs/_index.md View File

@ -1,6 +1,6 @@
---
title: Documentation
next: /interception-vimproved.md
next: blog/interception-vimproved.md
---
I try to hack around a lot of stuff,but lazy to document, but trying to document 'em all

+ 270
- 1
content/docs/selfhosting/nextcloud.md View File

@ -4,5 +4,274 @@ type: docs
prev: docs/selfhosting/
---
Coming Soon.
### Nextcloud on Debian
Nextcloud is a flexible file synchronization and sharing solution.Nextcloud includes Nextcloud server( run on linux) and Nextcloud client.Nextcloud is a Free and Open Source community supported,with all enterprise features.
In this doc lets try to install nextcloud server over Nginx and access it over browser client.
#### Nginx
Nginx is Free and Open Source web server which is now also used as reverse proxy,HTTP cache and load balancer.To setup nextcloud we can choose either nginx or apache as webserver.
Install and enable nginx service on the server
```bash
$ sudo apt install nginx -y
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
```
### Installation Steps
#### Prerequisites for mannual installation.
https://docs.nextcloud.com/server/latest/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
##### Install php8.0 from deb.sury.org
Installing PHP from a third party repository https://deb.sury.org/ which contains the deb packaged version of the latest php and its modules.
This repository supports both Ubuntu and Debian.
```bash
if [ "$(whoami)" != "root" ]; then
SUDO=sudo
fi
${SUDO} apt-get update
${SUDO} apt-get -y install lsb-release ca-certificates curl
${SUDO} curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
${SUDO} sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
${SUDO} apt-get update
```
```bash
$ sudo apt policy php8.0
# check for any latest updated php package
```
```bash{filename="Install the packages mentioned"}
sudo apt install php8.0-xmlreader php8.0-curl php8.0-gd php8.0-mbstring php8.0-zip php8.0-fpm
```
Database connectors (either choose from MySQL/MariaDB and Postgresql)
```bash{filename="mysql database connector"}
$ sudo apt install mariadb-server php8.0-mysql
```
Caching
```bash{filename="php modules required for caching"}
$sudo apt install redis php8.0-redis
```
https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html
```bash
vim /etc/php/8.0/cli/php.ini
update date.timezone = Asia/Kolkata
```
```
cd /var/www
sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo chown www-data:www-data /var/www/nextcloud -R
```
```sql
> create database nextcloud_db;
> create user nextcloud_user@localhost identified by 'deeproot';
> grant all privileges on nextcloud_db.* to nextcloud_user@localhost identified by 'deeproot';
> flush privileges
> exit
```
#### Nginx Configuration file.
paste the following in ```/etc/nginx/sites-enabled/nextcloud``` and remove any default files present.
and also make a symlink from ```/etc/nginx/sites-enabled/nextcloud``` to ```/etc/nginx/sites-available/nextcloud```
host ```nextcloud.vinay.com```
```
upstream php-handler {
#server 127.0.0.1:9000;
server unix:/var/run/php/php8.0-fpm.sock;
}
# Set the `immutable` cache control options only for assets with a cache busting `v` argument
map $arg_v $asset_immutable {
"" "";
default "immutable";
}
server {
listen 80;
server_name nextcloud.vinay.com;
# Path to the root of your installation
root /var/www/nextcloud;
# Use Mozilla's guidelines for SSL/TLS settings
# https://mozilla.github.io/server-side-tls/ssl-config-generator/
#ssl_certificate /etc/ssl/nginx/cloud.example.com.crt;
#ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;
# Prevent nginx HTTP Server Detection
server_tokens off;
# HSTS settings
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always;
# set max upload size and increase upload timeout:
client_max_body_size 512M;
client_body_timeout 300s;
fastcgi_buffers 64 4K;
# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
# Pagespeed is not supported by Nextcloud, so if your server is built
# with the `ngx_pagespeed` module, uncomment this line to disable it.
#pagespeed off;
# The settings allows you to optimize the HTTP2 bandwitdth.
# See https://blog.cloudflare.com/delivering-http-2-upload-speed-improvements/
# for tunning hints
client_body_buffer_size 512k;
# HTTP response headers borrowed from Nextcloud `.htaccess`
#add_header Referrer-Policy "no-referrer" always;
#add_header X-Content-Type-Options "nosniff" always;
#add_header X-Download-Options "noopen" always;
#add_header X-Frame-Options "SAMEORIGIN" always;
#add_header X-Permitted-Cross-Domain-Policies "none" always;
#add_header X-Robots-Tag "noindex, nofollow" always;
#add_header X-XSS-Protection "1; mode=block" always;
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;
# Add .mjs as a file extension for javascript
# Either include it in the default mime.types list
# or include you can include that list explicitly and add the file extension
# only for Nextcloud like below:
include mime.types;
types {
text/javascript js mjs;
}
# Specify how to handle directories -- specifying `/index.php$request_uri`
# here as the fallback means that Nginx always exhibits the desired behaviour
# when a client requests a path that corresponds to a directory that exists
# on the server. In particular, if that directory contains an index.php file,
# that file is correctly served; if it doesn't, then the request is passed to
# the front-end controller. This consistent behaviour means that we don't need
# to specify custom rules for certain paths (e.g. images and other assets,
# `/updater`, `/ocm-provider`, `/ocs-provider`), and thus
# `try_files $uri $uri/ /index.php$request_uri`
# always provides the desired behaviour.
index index.php index.html /index.php$request_uri;
# Rule borrowed from `.htaccess` to handle Microsoft DAV clients
location = / {
if ( $http_user_agent ~ ^DavClnt ) {
return 302 /remote.php/webdav/$is_args$args;
}
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Make a regex exception for `/.well-known` so that clients can still
# access it despite the existence of the regex rule
# `location ~ /(\.|autotest|...)` which would otherwise handle requests
# for `/.well-known`.
location ^~ /.well-known {
# The rules in this block are an adaptation of the rules
# in `.htaccess` that concern `/.well-known`.
location = /.well-known/carddav { return 301 /remote.php/dav/; }
location = /.well-known/caldav { return 301 /remote.php/dav/; }
location /.well-known/acme-challenge { try_files $uri $uri/ =404; }
location /.well-known/pki-validation { try_files $uri $uri/ =404; }
# Let Nextcloud's API for `/.well-known` URIs handle all other
# requests by passing them to the front-end controller.
return 301 /index.php$request_uri;
}
# Rules borrowed from `.htaccess` to hide certain paths from clients
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; }
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; }
# Ensure this block, which passes PHP files to the PHP process, is above the blocks
# which handle static assets (as seen below). If this block is not declared first,
# then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
# to the URI, resulting in a HTTP 500 error response.
location ~ \.php(?:$|/) {
# Required for legacy support
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_param HTTPS off;
fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
fastcgi_param front_controller_active true; # Enable pretty urls
#fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
fastcgi_max_temp_file_size 0;
}
# Serve static files
location ~ \.(?:css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite|map)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463, $asset_immutable";
access_log off; # Optional: Don't log access to assets
location ~ \.wasm$ {
default_type application/wasm;
}
}
location ~ \.woff2?$ {
try_files $uri /index.php$request_uri;
expires 7d; # Cache-Control policy borrowed from `.htaccess`
access_log off; # Optional: Don't log access to assets
}
# Rule borrowed from `.htaccess`
location /remote {
return 301 /remote.php$request_uri;
}
location / {
try_files $uri $uri/ /index.php$request_uri;
}
}
```
#### OpenLDAP & NextCloud.
install ldap php8.0 from deb sury repo
apt install php8.0-ldap
and then later enable LDAP user and group backend on nextcloud Apps

+ 16
- 1
hugo.yaml View File

@ -41,13 +41,28 @@ menu:
url: "https://mastodon.world/@vinaykeshava"
params:
icon: mastodon
sidebar:
- identifier: more
name: More
params:
type: separator
weight: 1
- identifier: about
name: "About"
pageRef: "/about"
weight: 2
- identifier:
name: "Blog↗"
url: "/blog/"
weight: 3
params:
navbar:
displayTitle: true
displayLogo: true
logo:
path: /images/vinay.png
path: favicon.ico
dark: favicon.ico
footer:
displayCopyright: false


BIN
static/android-chrome-192x192.png View File

Before After
Width: 192  |  Height: 192  |  Size: 39 KiB

+ 0
- 440
static/android-chrome-192x192.png?ref_type=heads
File diff suppressed because it is too large
View File


BIN
static/android-chrome-512x512.png View File

Before After
Width: 512  |  Height: 512  |  Size: 202 KiB

+ 0
- 440
static/android-chrome-512x512.png?ref_type=heads
File diff suppressed because it is too large
View File


BIN
static/apple-touch-icon.png View File

Before After
Width: 180  |  Height: 180  |  Size: 35 KiB

BIN
static/favicon-16x16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 619 B

+ 0
- 440
static/favicon-16x16.png?ref_type=heads
File diff suppressed because it is too large
View File


BIN
static/favicon-32x32.png View File

Before After
Width: 32  |  Height: 32  |  Size: 1.8 KiB

+ 0
- 439
static/favicon-32x32.png?ref_type=heads
File diff suppressed because it is too large
View File


BIN
static/favicon.ico View File

Before After

+ 0
- 440
static/favicon.ico?ref_type=heads
File diff suppressed because it is too large
View File


Loading…
Cancel
Save