Add dotfiles and scripts

This commit is contained in:
Jonas Zeunert
2024-04-24 00:36:57 +02:00
parent 5cfc470f1e
commit 8e34bd5ac8
18 changed files with 1222 additions and 0 deletions

69
dotfiles/awesm.service Normal file
View File

@@ -0,0 +1,69 @@
[Unit]
Description=Awesome search service
After=network.target
[Service]
Type=simple
User=awesm
Group=awesm
Environment="RUST_LOG=info
ExecStart=/var/www/awesm/awesm-server/target/release/awesm
StandardOutput=append:/var/log/awesm/awesm.log
StandardError=inherit
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1000
# Specifies the maximum number of processes
LimitNPROC=100
# Specifies the maximum size of virtual memory
LimitAS=infinity
# Specifies the maximum file size
LimitFSIZE=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=0
KillSignal=SIGTERM
# Allow a slow startup before the systemd notifier module kicks in to extend the timeout
TimeoutStartSec=900
# Sandboxing options to harden security
# Depending on specificities of your service/app, you may need to tweak these
# .. but this should be a good baseline
# Details for these options: https://www.freedesktop.org/software/systemd/man/systemd.exec.html
NoNewPrivileges=yes
PrivateTmp=yes
PrivateDevices=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
RestrictNamespaces=yes
RestrictRealtime=yes
DevicePolicy=closed
ProtectClock=yes
ProtectHostname=yes
ProtectProc=invisible
ProtectSystem=full
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
LockPersonality=yes
SystemCallArchitectures=native
SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap @cpu-emulation @privileged
# Denying access to capabilities that should not be relevant for webapps
# Doc: https://man7.org/linux/man-pages/man7/capabilities.7.html
CapabilityBoundingSet=~CAP_RAWIO CAP_MKNOD
CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE
CapabilityBoundingSet=~CAP_SYS_BOOT CAP_SYS_TIME CAP_SYS_MODULE CAP_SYS_PACCT
CapabilityBoundingSet=~CAP_LEASE CAP_LINUX_IMMUTABLE CAP_IPC_LOCK
CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_WAKE_ALARM
CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG
CapabilityBoundingSet=~CAP_MAC_ADMIN CAP_MAC_OVERRIDE
CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW
CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,214 @@
{
"settings": {
"number_of_shards": 1,
"index.mapping.total_fields.limit": 2000,
"analysis": {
"analyzer": {
"fscrawler_path": {
"tokenizer": "fscrawler_path"
}
},
"tokenizer": {
"fscrawler_path": {
"type": "path_hierarchy"
}
}
}
},
"mappings": {
"dynamic_templates": [
{
"raw_as_text": {
"path_match": "meta.raw.*",
"mapping": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
],
"properties": {
"attachment": {
"type": "binary",
"doc_values": false
},
"attributes": {
"properties": {
"group": {
"type": "keyword"
},
"owner": {
"type": "keyword"
}
}
},
"content": {
"type": "text"
},
"file": {
"properties": {
"content_type": {
"type": "keyword"
},
"filename": {
"type": "keyword",
"store": true
},
"extension": {
"type": "keyword"
},
"filesize": {
"type": "long"
},
"indexed_chars": {
"type": "long"
},
"indexing_date": {
"type": "date",
"format": "dateOptionalTime"
},
"created": {
"type": "date",
"format": "dateOptionalTime"
},
"last_modified": {
"type": "date",
"format": "dateOptionalTime"
},
"last_accessed": {
"type": "date",
"format": "dateOptionalTime"
},
"checksum": {
"type": "keyword"
},
"url": {
"type": "keyword",
"index": false
}
}
},
"meta": {
"properties": {
"author": {
"type": "text"
},
"date": {
"type": "date",
"format": "dateOptionalTime"
},
"keywords": {
"type": "text"
},
"title": {
"type": "text"
},
"language": {
"type": "keyword"
},
"format": {
"type": "text"
},
"identifier": {
"type": "text"
},
"contributor": {
"type": "text"
},
"coverage": {
"type": "text"
},
"modifier": {
"type": "text"
},
"creator_tool": {
"type": "keyword"
},
"publisher": {
"type": "text"
},
"relation": {
"type": "text"
},
"rights": {
"type": "text"
},
"source": {
"type": "text"
},
"type": {
"type": "text"
},
"description": {
"type": "text"
},
"created": {
"type": "date",
"format": "dateOptionalTime"
},
"print_date": {
"type": "date",
"format": "dateOptionalTime"
},
"metadata_date": {
"type": "date",
"format": "dateOptionalTime"
},
"latitude": {
"type": "text"
},
"longitude": {
"type": "text"
},
"altitude": {
"type": "text"
},
"rating": {
"type": "byte"
},
"comments": {
"type": "text"
}
}
},
"path": {
"properties": {
"real": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
},
"root": {
"type": "keyword"
},
"virtual": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,64 @@
{
"settings": {
"analysis": {
"analyzer": {
"fscrawler_path": {
"tokenizer": "fscrawler_path"
}
},
"tokenizer": {
"fscrawler_path": {
"type": "path_hierarchy"
}
}
}
},
"mappings": {
"properties" : {
"file": {
"properties": {
"content_type": {
"type": "keyword"
},
"filename": {
"type": "keyword",
"store": true
}
}
},
"path": {
"properties": {
"real": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
},
"root": {
"type": "keyword"
},
"virtual": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,214 @@
{
"settings": {
"number_of_shards": 1,
"index.mapping.total_fields.limit": 2000,
"analysis": {
"analyzer": {
"fscrawler_path": {
"tokenizer": "fscrawler_path"
}
},
"tokenizer": {
"fscrawler_path": {
"type": "path_hierarchy"
}
}
}
},
"mappings": {
"dynamic_templates": [
{
"raw_as_text": {
"path_match": "meta.raw.*",
"mapping": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
],
"properties": {
"attachment": {
"type": "binary",
"doc_values": false
},
"attributes": {
"properties": {
"group": {
"type": "keyword"
},
"owner": {
"type": "keyword"
}
}
},
"content": {
"type": "text"
},
"file": {
"properties": {
"content_type": {
"type": "keyword"
},
"filename": {
"type": "keyword",
"store": true
},
"extension": {
"type": "keyword"
},
"filesize": {
"type": "long"
},
"indexed_chars": {
"type": "long"
},
"indexing_date": {
"type": "date",
"format": "dateOptionalTime"
},
"created": {
"type": "date",
"format": "dateOptionalTime"
},
"last_modified": {
"type": "date",
"format": "dateOptionalTime"
},
"last_accessed": {
"type": "date",
"format": "dateOptionalTime"
},
"checksum": {
"type": "keyword"
},
"url": {
"type": "keyword",
"index": false
}
}
},
"meta": {
"properties": {
"author": {
"type": "text"
},
"date": {
"type": "date",
"format": "dateOptionalTime"
},
"keywords": {
"type": "text"
},
"title": {
"type": "text"
},
"language": {
"type": "keyword"
},
"format": {
"type": "text"
},
"identifier": {
"type": "text"
},
"contributor": {
"type": "text"
},
"coverage": {
"type": "text"
},
"modifier": {
"type": "text"
},
"creator_tool": {
"type": "keyword"
},
"publisher": {
"type": "text"
},
"relation": {
"type": "text"
},
"rights": {
"type": "text"
},
"source": {
"type": "text"
},
"type": {
"type": "text"
},
"description": {
"type": "text"
},
"created": {
"type": "date",
"format": "dateOptionalTime"
},
"print_date": {
"type": "date",
"format": "dateOptionalTime"
},
"metadata_date": {
"type": "date",
"format": "dateOptionalTime"
},
"latitude": {
"type": "text"
},
"longitude": {
"type": "text"
},
"altitude": {
"type": "text"
},
"rating": {
"type": "byte"
},
"comments": {
"type": "text"
}
}
},
"path": {
"properties": {
"real": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
},
"root": {
"type": "keyword"
},
"virtual": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,64 @@
{
"settings": {
"analysis": {
"analyzer": {
"fscrawler_path": {
"tokenizer": "fscrawler_path"
}
},
"tokenizer": {
"fscrawler_path": {
"type": "path_hierarchy"
}
}
}
},
"mappings": {
"properties" : {
"file": {
"properties": {
"content_type": {
"type": "keyword"
},
"filename": {
"type": "keyword",
"store": true
}
}
},
"path": {
"properties": {
"real": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
},
"root": {
"type": "keyword"
},
"virtual": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,80 @@
{
"name": "SOURCE_NAME",
"schema": {
"title": "text",
"name": "text",
"body": "text",
"url": "text",
"author": "text",
"keywords": "text",
"language": "text",
"comments": "text",
"mime_type": "text",
"extension": "text",
"size": "number",
"text_size": "number",
"last_modified": "date",
"created_at": "date",
"path": "text"
},
"display": {
"title_field": "title",
"subtitle_field": "name",
"description_field": "body",
"url_field": "url",
"media_type_field": "mime_type",
"created_by_field": "author",
"detail_fields": [
{
"field_name": "author",
"label": "Author"
},
{
"field_name": "keywords",
"label": "Keywords"
},
{
"field_name": "language",
"label": "Language"
},
{
"field_name": "last_modified",
"label": "Last Modification Date"
},
{
"field_name": "created_at",
"label": "Creation date"
},
{
"field_name": "comments",
"label": "Comments"
},
{
"field_name": "mime_type",
"label": "Mime Type"
},
{
"field_name": "extension",
"label": "Extension"
},
{
"field_name": "size",
"label": "File size"
},
{
"field_name": "text_size",
"label": "Extracted text size"
},
{
"field_name": "path",
"label": "Path"
},
{
"field_name": "body",
"label": "Content"
}
],
"color": "#000000"
},
"is_searchable": true
}

View File

@@ -0,0 +1,214 @@
{
"settings": {
"number_of_shards": 1,
"index.mapping.total_fields.limit": 2000,
"analysis": {
"analyzer": {
"fscrawler_path": {
"tokenizer": "fscrawler_path"
}
},
"tokenizer": {
"fscrawler_path": {
"type": "path_hierarchy"
}
}
}
},
"mappings": {
"dynamic_templates": [
{
"raw_as_text": {
"path_match": "meta.raw.*",
"mapping": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
],
"properties": {
"attachment": {
"type": "binary",
"doc_values": false
},
"attributes": {
"properties": {
"group": {
"type": "keyword"
},
"owner": {
"type": "keyword"
}
}
},
"content": {
"type": "text"
},
"file": {
"properties": {
"content_type": {
"type": "keyword"
},
"filename": {
"type": "keyword",
"store": true
},
"extension": {
"type": "keyword"
},
"filesize": {
"type": "long"
},
"indexed_chars": {
"type": "long"
},
"indexing_date": {
"type": "date",
"format": "date_optional_time"
},
"created": {
"type": "date",
"format": "date_optional_time"
},
"last_modified": {
"type": "date",
"format": "date_optional_time"
},
"last_accessed": {
"type": "date",
"format": "date_optional_time"
},
"checksum": {
"type": "keyword"
},
"url": {
"type": "keyword",
"index": false
}
}
},
"meta": {
"properties": {
"author": {
"type": "text"
},
"date": {
"type": "date",
"format": "date_optional_time"
},
"keywords": {
"type": "text"
},
"title": {
"type": "text"
},
"language": {
"type": "keyword"
},
"format": {
"type": "text"
},
"identifier": {
"type": "text"
},
"contributor": {
"type": "text"
},
"coverage": {
"type": "text"
},
"modifier": {
"type": "text"
},
"creator_tool": {
"type": "keyword"
},
"publisher": {
"type": "text"
},
"relation": {
"type": "text"
},
"rights": {
"type": "text"
},
"source": {
"type": "text"
},
"type": {
"type": "text"
},
"description": {
"type": "text"
},
"created": {
"type": "date",
"format": "date_optional_time"
},
"print_date": {
"type": "date",
"format": "date_optional_time"
},
"metadata_date": {
"type": "date",
"format": "date_optional_time"
},
"latitude": {
"type": "text"
},
"longitude": {
"type": "text"
},
"altitude": {
"type": "text"
},
"rating": {
"type": "byte"
},
"comments": {
"type": "text"
}
}
},
"path": {
"properties": {
"real": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
},
"root": {
"type": "keyword"
},
"virtual": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,64 @@
{
"settings": {
"analysis": {
"analyzer": {
"fscrawler_path": {
"tokenizer": "fscrawler_path"
}
},
"tokenizer": {
"fscrawler_path": {
"type": "path_hierarchy"
}
}
}
},
"mappings": {
"properties" : {
"file": {
"properties": {
"content_type": {
"type": "keyword"
},
"filename": {
"type": "keyword",
"store": true
}
}
},
"path": {
"properties": {
"real": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
},
"root": {
"type": "keyword"
},
"virtual": {
"type": "keyword",
"fields": {
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
},
"fulltext": {
"type": "text"
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,80 @@
{
"name": "SOURCE_NAME",
"schema": {
"title": "text",
"name": "text",
"body": "text",
"url": "text",
"author": "text",
"keywords": "text",
"language": "text",
"comments": "text",
"mime_type": "text",
"extension": "text",
"size": "number",
"text_size": "number",
"last_modified": "date",
"created_at": "date",
"path": "text"
},
"display": {
"title_field": "title",
"subtitle_field": "name",
"description_field": "body",
"url_field": "url",
"media_type_field": "mime_type",
"created_by_field": "author",
"detail_fields": [
{
"field_name": "author",
"label": "Author"
},
{
"field_name": "keywords",
"label": "Keywords"
},
{
"field_name": "language",
"label": "Language"
},
{
"field_name": "last_modified",
"label": "Last Modification Date"
},
{
"field_name": "created_at",
"label": "Creation date"
},
{
"field_name": "comments",
"label": "Comments"
},
{
"field_name": "mime_type",
"label": "Mime Type"
},
{
"field_name": "extension",
"label": "Extension"
},
{
"field_name": "size",
"label": "File size"
},
{
"field_name": "text_size",
"label": "Extracted text size"
},
{
"field_name": "path",
"label": "Path"
},
{
"field_name": "body",
"label": "Content"
}
],
"color": "#000000"
},
"is_searchable": true
}

View File

@@ -0,0 +1,34 @@
---
name: "awesm"
fs:
url: "/home/awesm/data/awesome-awesomeness/readmes"
update_rate: "15m"
json_support: false
includes:
- "*.md"
excludes:
- "index.md"
filename_as_id: true
add_filesize: true
remove_deleted: false
add_as_inner_object: true
store_source: true
index_content: true
attributes_support: false
raw_metadata: false
xml_support: false
index_folders: true
lang_detect: true
continue_on_error: true
ocr:
language: "eng"
enabled: true
pdf_strategy: "ocr_and_text"
follow_symlinks: false
elasticsearch:
nodes:
- url: "http://127.0.0.1:9200"
bulk_size: 100
flush_interval: "5s"
byte_size: "10mb"
ssl_verification: true

View File

@@ -0,0 +1,6 @@
{
"name" : "awesm",
"lastrun" : "2024-04-24T00:23:46.417072",
"indexed" : 2,
"deleted" : 0
}

View File

@@ -0,0 +1,34 @@
---
name: "awesome"
fs:
url: "/home/awesm/data/awesome-awesomeness/readmes"
update_rate: "15m"
excludes:
- "*/~*"
includes:
- "*.md"
json_support: false
filename_as_id: false
add_filesize: true
remove_deleted: true
add_as_inner_object: true
store_source: false
index_content: true
attributes_support: false
raw_metadata: false
xml_support: false
index_folders: true
lang_detect: false
continue_on_error: false
ocr:
language: "eng"
enabled: true
pdf_strategy: "ocr_and_text"
follow_symlinks: false
elasticsearch:
nodes:
- url: "http://127.0.0.1:9200"
bulk_size: 100
flush_interval: "5s"
byte_size: "10mb"
ssl_verification: true

View File

@@ -0,0 +1,6 @@
{
"name" : "awesome",
"lastrun" : "2024-04-22T22:33:26.713382",
"indexed" : 0,
"deleted" : 0
}

52
dotfiles/nginx.conf Normal file
View File

@@ -0,0 +1,52 @@
# Include before server
#map $term $root {
# 1 /var/www/awesm/terminal;
# default /var/www/awesm/html;
#}
#
#map $http_user_agent $autoindex_type {
# "~*curl*" jsonp;
# default html;
#}
#sub_path_only rewrite ^/$ / permanentm
location = /lists o
alias $root;
autoindex on;
autoindex_format jsonp;
}
location /stats {
autoindex off;
alias /var/www/awesm/stats;
}
location /style {
autoindex off;
alias /var/www/awesm/style;
}
location = / {
root $root;
try_files /index /index.html;
}
#location ~* ^/lists {
location / {
root $root;
try_files $uri $uri.html /redirect?q=$uri;
}
location /search {
set $args $args&pretty;
proxy_pass http://[::1]:9876;
}
location /redirect {
proxy_pass http://[::1]:9876;
}