Compare commits
3 Commits
2a675fd135
...
61cb8f4941
| Author | SHA1 | Date | |
|---|---|---|---|
|
61cb8f4941
|
|||
|
433ac4dc8e
|
|||
|
62fe0d8fac
|
@@ -101,7 +101,7 @@ class LdapService < ApplicationService
|
||||
dn = "ou=#{ou},cn=users,#{ldap_suffix}"
|
||||
|
||||
aci = <<-EOS
|
||||
(target="ldap:///cn=*,ou=#{ou},cn=users,#{ldap_suffix}")(targetattr="cn || sn || uid || mail || userPassword || nsRole || objectClass") (version 3.0; acl "service-#{ou.gsub(".", "-")}-read-search"; allow (read,search) userdn="ldap:///uid=service,ou=#{ou},cn=applications,#{ldap_suffix}";)
|
||||
(target="ldap:///cn=*,ou=#{ou},cn=users,#{ldap_suffix}")(targetattr="cn || sn || uid || userPassword || mail || mailRoutingAddress || serviceEnabled || nostrKey || nsRole || objectClass") (version 3.0; acl "service-#{ou.gsub(".", "-")}-read-search"; allow (read,search) userdn="ldap:///uid=service,ou=#{ou},cn=applications,#{ldap_suffix}";)
|
||||
EOS
|
||||
|
||||
attrs = {
|
||||
|
||||
@@ -107,13 +107,14 @@ services:
|
||||
- minio
|
||||
- redis
|
||||
|
||||
nostr-relay:
|
||||
image: gitea.kosmos.org/kosmos/strfry-deno:1.0.0
|
||||
strfry:
|
||||
image: gitea.kosmos.org/kosmos/strfry-deno:1.1.1
|
||||
volumes:
|
||||
- ./docker/strfry/strfry.conf:/etc/strfry.conf
|
||||
- ./extras/strfry/ldap-policy.ts:/opt/ldap-policy.ts
|
||||
- ./extras/strfry/strfry-policy.ts:/opt/strfry-policy.ts
|
||||
- strfry-data:/app/strfry-db
|
||||
- ./extras/strfry/strfry-sync.ts:/opt/strfry-sync.ts
|
||||
- strfry-data:/var/lib/strfry
|
||||
networks:
|
||||
- external_network
|
||||
- internal_network
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
##
|
||||
|
||||
# Directory that contains the strfry LMDB database (restart required)
|
||||
db = "./strfry-db/"
|
||||
db = "/var/lib/strfry/"
|
||||
|
||||
dbParams {
|
||||
# Maximum number of threads/processes that can simultaneously have LMDB transactions open (restart required)
|
||||
|
||||
39
extras/strfry/strfry-sync.ts
Normal file
39
extras/strfry/strfry-sync.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { load } from "https://deno.land/std@0.224.0/dotenv/mod.ts";
|
||||
import { Client } from 'npm:ldapts';
|
||||
|
||||
const dirname = new URL('.', import.meta.url).pathname;
|
||||
await load({ envPath: `${dirname}/.env`, export: true });
|
||||
|
||||
const opts = {
|
||||
url: Deno.env.get("LDAP_URL"),
|
||||
bindDN: Deno.env.get("LDAP_BIND_DN"),
|
||||
password: Deno.env.get("LDAP_PASSWORD"),
|
||||
searchDN: Deno.env.get("LDAP_SEARCH_DN"),
|
||||
relayUrl: Deno.args[0]
|
||||
}
|
||||
|
||||
const client = new Client({ url: opts.url });
|
||||
|
||||
try {
|
||||
await client.bind(opts.bindDN, opts.password);
|
||||
|
||||
const { searchEntries } = await client.search(opts.searchDN, {
|
||||
filter: `(nostrKey=*)`,
|
||||
attributes: ['nostrKey']
|
||||
});
|
||||
|
||||
const pubkeys = searchEntries.map(e => e.nostrKey);
|
||||
const filter = JSON.stringify({ authors: pubkeys });
|
||||
|
||||
const p = Deno.run({ cmd: [
|
||||
"strfry", "sync", opts.relayUrl,
|
||||
"--dir", "down", "--filter", filter
|
||||
]});
|
||||
|
||||
const result = await p.status();
|
||||
|
||||
Deno.exit(result.code);
|
||||
} catch (ex) {
|
||||
console.error(ex);
|
||||
Deno.exit(1);
|
||||
}
|
||||
Reference in New Issue
Block a user