modif towns

This commit is contained in:
philc 2023-04-29 06:44:01 +00:00
commit 2f0ea01fa8
20 changed files with 130 additions and 228 deletions

View File

@ -185,41 +185,42 @@ Nations.synchronize = () => {
Nations.create = (conf) => { Nations.create = (conf) => {
/* /*
@conf from a nationchains/socialworld/setup/townSetup {object, nationName, townName, dns} @conf from a nationchains/socialworld/setup/townSetup {object, nationId, townId, dns}
@return @return
*/ */
const res = {}; const res = {};
if (conf.object=="towns"){ if (conf.object=="towns"){
Odmdb.create("nationchains/socialworld/objects","towns",conf); Odmdb.create("nationchains/socialworld/objects","towns",conf);
} }
const nation_town = fs.readJsonSync( const nations = fs.readJsonSync(
"./nationchains/socialworld/objects/towns/searchindex/towns_nationId_townId.json" "./nationchains/nations/idx/nationId_all.json"
); );
if (!ObjectKeys(nation_town).includes(conf.nationName)) { if (!ObjectKeys(nations).includes(conf.nationId)) {
res.status = 404; res.status = 404;
res.info = `your nationName ${conf.nationName} does not exist you have to choose an existing one`; res.info = `your nationId ${conf.nationId} does not exist you have to choose an existing one`;
return res; return res;
} }
if (nation_town[conf.nationName].includes(conf.townName)) { const towns = fs.readJsonSync( "./nationchains/towns/idx/townId_all.json")
if (towns[conf.nationId].includes(conf.townId)) {
res.status = 409; res.status = 409;
res.info = `This conf.townName already exist you have to find a unique town name per nation`; res.info = `This conf.townId already exist you have to find a unique town name`;
return res; return res;
} }
const towndata = { const towndata = {
uuid: conf.townName, uuid: conf.townId,
nationid: conf.nationName, nationid: conf.nationId,
url: `${conf.townName}.${conf.nationName}.${conf.dns}`, url: `${conf.townId}.${conf.nationId}.${conf.dns}`,
status: (conf.dns=="unchain")? "unchain" : "tochain", status: (conf.dns=="unchain")? "unchain" : "tochain",
}; };
const metatown=fs.readJsonSync('./nationchains/socialworld/metaobject/towns.json'); const metatown=fs.readJsonSync('./nationchains/socialworld/metaobject/towns.json');
Odmdb.add(objectpath, towns, metatown,towndata) Odmdb.add(objectpath, towns, metatown,towndata)
fs.outputJsonSync( fs.outputJsonSync(
`./nationchains/socialworld/objects/towns/${townName}.json`, `./nationchains/socialworld/objects/towns/${townId}.json`,
towndata towndata
); );
res.status=200 res.status=200
res.info=`${townName} create for ${nationName} nation`; res.info=`${townId} create for ${nationId} nation`;
return res return res
}; };

View File

@ -36,35 +36,12 @@ Pagans.createId = async (alias,passphrase) =>{
passphrase: passphrase, // protects the private key passphrase: passphrase, // protects the private key
format: "armored", // output key format, defaults to 'armored' (other options: 'binary' or 'object') format: "armored", // output key format, defaults to 'armored' (other options: 'binary' or 'object')
}); });
console.log(privateKey)
console.log(publicKey)
apxpagans[alias]={alias,publicKey}; apxpagans[alias]={alias,publicKey};
fs.outputJsonSync(`${conf.dirname}/nationchains/pagans/idx/alias_all.json`,apxpagans); fs.outputJsonSync(`${conf.dirname}/nationchains/pagans/idx/alias_all.json`,apxpagans);
fs.outputJsonSync(`${conf.dirname}/nationchains/pagans/itm/${alias}.json`,{alias,publicKey}); fs.outputJsonSync(`${conf.dirname}/nationchains/pagans/itm/${alias}.json`,{alias,publicKey});
return {status:200, data:{alias,privateKey,publicKey}} return {status:200, data:{alias,privateKey,publicKey}}
} }
Pagans.generateKey = async (alias, passphrase) => {
/**
* @param {string} alias a unique alias that identify an identity
* @param {string} passphrase a string to cipher the publicKey (can be empty, less secure but simpler)
* @return {publicKey,privateKey} with userIds = [{alias}]
*/
const { privateKey, publicKey } = await openpgp.generateKey({
type: "ecc", // Type of the key, defaults to ECC
curve: "curve25519", // ECC curve name, defaults to curve25519
userIDs: [{ alias: alias }], // you can pass multiple user IDs
passphrase: passphrase, // protects the private key
format: "armored", // output key format, defaults to 'armored' (other options: 'binary' or 'object')
});
// key start by '-----BEGIN PGP PRIVATE KEY BLOCK ... '
// get liste of alias:pubklickey await axios.get('api/v0/pagans')
// check alias does not exist
console.log(privateKey)
return { alias, privateKey, publicKey };
};
//console.log( Pagans.generateKey('toto','')) //console.log( Pagans.generateKey('toto',''))
Pagans.detachedSignature = async (pubK, privK, passphrase, message) => { Pagans.detachedSignature = async (pubK, privK, passphrase, message) => {
/** /**
@ -104,7 +81,7 @@ Pagans.generateKey = async (alias, passphrase) => {
const verificationResult = await openpgp.verify({ const verificationResult = await openpgp.verify({
msg, // Message object msg, // Message object
signature, signature,
verificationKeys: publicKey, verificationKeys: publicKey
}); });
const { verified, keyID } = verificationResult.signatures[0]; const { verified, keyID } = verificationResult.signatures[0];
try { try {

View File

@ -44,6 +44,7 @@ Setup.init = async () => {
`./nationchains/nations/idx/nationId_all.json` `./nationchains/nations/idx/nationId_all.json`
); );
const apxtowns = fs.readJsonSync(`./nationchains/towns/idx/townId_all.json`); const apxtowns = fs.readJsonSync(`./nationchains/towns/idx/townId_all.json`);
let apxpagans={} let apxpagans={}
if (fs.existsSync(`./nationchains/pagans/idx/alias_all.json`)){ if (fs.existsSync(`./nationchains/pagans/idx/alias_all.json`)){
apxpagans = fs.readJsonSync( apxpagans = fs.readJsonSync(
@ -73,9 +74,13 @@ Setup.init = async () => {
*/ */
townconf.sudoerUser = process.env.USER; townconf.sudoerUser = process.env.USER;
townconf.dirname = path.resolve(`${__dirname}/../../`); townconf.dirname = path.resolve(`${__dirname}/../../`);
// nginx allow to set a new website space // To allow to serve the nation website until the end
townconf.nginx.include.push( townconf.nginx.include.push(
`${townconf.dirname}/nationchains/**/nginx_*.conf` `${townconf.dirname}/nationchains/www/nginx_*.conf`
);
// To allow to serve tribes web site
townconf.nginx.include.push(
`${townconf.dirname}/nationchains/tribes/*/www/nginx_*.conf`
); );
townconf.nginx.logs = `${townconf.dirname}/nationchains/logs/nginx`; townconf.nginx.logs = `${townconf.dirname}/nationchains/logs/nginx`;
townconf.nginx.website = "adminapx"; townconf.nginx.website = "adminapx";
@ -144,7 +149,7 @@ Setup.init = async () => {
apxtribes[townconf.tribeId]=townconf.tribe; apxtribes[townconf.tribeId]=townconf.tribe;
fs.outputJsonSync(`./nationchains/tribes/idx/tribeId_all.json`,apxtribes); fs.outputJsonSync(`./nationchains/tribes/idx/tribeId_all.json`,apxtribes);
fs.outputJsonSync(`./nationchains/tribes/itm/${townconf.tribeId}.json`,townconf.tribe,{spaces:2}); fs.outputJsonSync(`./nationchains/tribes/itm/${townconf.tribeId}.json`,townconf.tribe,{spaces:2});
fs.ensureDirSync(`./nationchains/tribes/${townconf.tribeId}/logs`); fs.ensureDirSync(`./nationchains/tribes/${townconf.tribeId}/logs/nginx`);
//CREATE a mayorId pagans if it does not exist //CREATE a mayorId pagans if it does not exist
if (!apxpagans[townconf.mayorId]){ if (!apxpagans[townconf.mayorId]){

View File

@ -12,6 +12,33 @@ const hasAccessrighton = require( '../middlewares/hasAccessrighton' );
const router = express.Router(); const router = express.Router();
router.get('www', checkHeaders,isAuthenticated,hasAccessrighton('www','R'),(req,res)=>{
/**
* @api {get} /tribes/www/:tribeId
* @apiName Get list of www object (space web)
* @apiGroup Tribes
*
* @apiUse apxHeader
*
* @apiParam {String} tribeId Mandatory it identify an existing tribe
* @apiParam {String} Check if Person has access as Read to object www
* @apiError (404) {string} status the file does not exist
* @apiError (404) {string} ref objectmodel to get in the right language
* @apiError (404) {string} msg key to get template from objectmodel
* @apiError (404) {object} data use to render lg/objectmodel_lg.json
*
* @apiSuccess (200) {object} data contains indexfile requested
*/
res.status(200).json({data:{}})
})
//router.post('www/') to create a webspace
//router.put('www/:app') to update
//router.delete('www/:tribeId/:app)
router.get( '/clientconf/:tribeid', checkHeaders, isAuthenticated, ( req, res ) => { router.get( '/clientconf/:tribeid', checkHeaders, isAuthenticated, ( req, res ) => {
/* /*
get a clientconf.json for a tribeid depending of user accessright get a clientconf.json for a tribeid depending of user accessright

View File

@ -23,12 +23,15 @@ if( !fs.existsSync( './nationchains/tribes/conf.json' ) ) {
console.log( `\x1b[42m############################################################################################\x1b[0m\n\x1b[42mWellcome into apxtrib, you must first init your town and tribes by a 'yarn setup'. \x1b[0m \n\x1b[42mThen 'yarn dev' or 'yarn startpm2' or 'yarn unittest'. Check README's project to learn more.\x1b[0m\n\x1b[42m############################################################################################\x1b[0m` ); console.log( `\x1b[42m############################################################################################\x1b[0m\n\x1b[42mWellcome into apxtrib, you must first init your town and tribes by a 'yarn setup'. \x1b[0m \n\x1b[42mThen 'yarn dev' or 'yarn startpm2' or 'yarn unittest'. Check README's project to learn more.\x1b[0m\n\x1b[42m############################################################################################\x1b[0m` );
process.exit(); process.exit();
} }
const config = require( './nationchains/tribes/conf.json' ); const conf = require( './nationchains/tribes/conf.json' );
// To make public this conf, careffull this localconf will be public, this the only difference between all apxtrib node
const localconf={nationId:conf.nationId,townId:conf.townId,tribeId:conf.tribeId,comment:"Generate by apxtrib.js with minimum of information"};
fs.outputJsonSync('./nationchains/www/adminapx/static/tpldata/conf_en.json',localconf);
// Tribes allow to get local apxtrib instance context // Tribes allow to get local apxtrib instance context
// dataclient .tribeids [] .DOMs [] .routes (plugins {url:name route:path}) .appname {tribeid:[website]} // dataclient .tribeids [] .DOMs [] .routes (plugins {url:name route:path}) .appname {tribeid:[website]}
//const dataclient = require( './api/models/Tribes' ).init(); //const dataclient = require( './api/models/Tribes' ).init();
const tribelist=fs.readJsonSync(`./nationchains/tribes/idx/tribeId_all.json`); const tribelist=fs.readJsonSync(`./nationchains/tribes/idx/tribeId_all.json`);
let doms=config.dns let doms=conf.dns
let tribeIds=[] let tribeIds=[]
let routes = glob.sync( './api/routes/*.js' ) let routes = glob.sync( './api/routes/*.js' )
.map( f => { .map( f => {
@ -45,14 +48,14 @@ Object.keys(tribelist).forEach(t=>{
console.log('Allowed DOMs to access to this apxtrib server: ', doms ) console.log('Allowed DOMs to access to this apxtrib server: ', doms )
const app = express(); const app = express();
Object.keys(config.api.appset).forEach(p=>{ Object.keys(conf.api.appset).forEach(p=>{
app.set(p,config.api.appset[p]) app.set(p,conf.api.appset[p])
}) })
// To set depending of data form or get size to send // To set depending of data form or get size to send
app.use( bodyParser.urlencoded( config.api.bodyparse.urlencoded ) ); app.use( bodyParser.urlencoded( conf.api.bodyparse.urlencoded ) );
// To set depending of post put json data size to send // To set depending of post put json data size to send
app.use( express.json() ) app.use( express.json() )
app.use( bodyParser.json( config.api.bodyparse.json ) ); app.use( bodyParser.json( conf.api.bodyparse.json ) );
app.locals.tribeids = tribeIds; app.locals.tribeids = tribeIds;
console.log( 'app.locals.tribeids', app.locals.tribeids ); console.log( 'app.locals.tribeids', app.locals.tribeids );
// token will be store in /tmp/token/pseudo_token to check if isauthenticated // token will be store in /tmp/token/pseudo_token to check if isauthenticated
@ -93,23 +96,23 @@ const corsOptions = {
} }
} }
}, },
exposedHeaders: Object.keys( config.api.exposedHeaders ) exposedHeaders: Object.keys( conf.api.exposedHeaders )
}; };
// CORS // CORS
app.use( cors( corsOptions ) ); app.use( cors( corsOptions ) );
// Static Routes // Static Routes
/*app.use( express.static( `${__dirname}/nationchains/tribes/${config.mayorId}/www/cdn/public`, { /*app.use( express.static( `${__dirname}/nationchains/tribes/${conf.mayorId}/www/cdn/public`, {
dotfiles: 'allow' dotfiles: 'allow'
} ) ); } ) );
*/ */
//Allow to public access a space dev delivered by apxtrib //Allow to public access a space dev delivered by apxtrib
// this is just a static open route for dev purpose, // this is just a static open route for dev purpose,
// for production, we'll use a nginx static set to /www/app/appname // for production, we'll use a nginx static set to /www/app/appname
/*console.log( `${config.dnsapxtrib}/space/tribeid/website`, dataclient.appname ); /*console.log( `${conf.dnsapxtrib}/space/tribeid/website`, dataclient.appname );
Object.keys( dataclient.appname ) Object.keys( dataclient.appname )
.forEach( cid => { .forEach( cid => {
dataclient.appname[ cid ].forEach( website => { dataclient.appname[ cid ].forEach( website => {
app.use( `/space/${cid}/${website}`, express.static( `${config.tribes}/${cid}/spacedev/${website}` ) ); app.use( `/space/${cid}/${website}`, express.static( `${conf.tribes}/${cid}/spacedev/${website}` ) );
} ) } )
} ); } );
*/ */
@ -127,8 +130,8 @@ routes.forEach( r => {
} }
} ) } )
app.listen( config.api.port, () => { app.listen( conf.api.port, () => {
console.log( `check in your browser that api works http://${config.dns}:${config.api.port}` ); console.log( `check in your browser that api works http://${conf.dns}:${conf.api.port}` );
} ); } );
console.log( "\x1b[42m\x1b[37m", "Made with love for people's freedom, enjoy !!!", "\x1b[0m" ); console.log( "\x1b[42m\x1b[37m", "Made with love for people's freedom, enjoy !!!", "\x1b[0m" );

View File

@ -11,147 +11,4 @@
[26/Apr/2023:20:01:44 +0200]##"-"##"GET /static/tpl/pagancreate_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36" [26/Apr/2023:20:01:44 +0200]##"-"##"GET /static/tpl/pagancreate_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[26/Apr/2023:20:01:44 +0200]##"-"##"GET /nationchains/pagans/idx/alias_all.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36" [26/Apr/2023:20:01:44 +0200]##"-"##"GET /nationchains/pagans/idx/alias_all.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[26/Apr/2023:20:01:44 +0200]##"-"##"GET /static/tpldata/loginout_en.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36" [26/Apr/2023:20:01:44 +0200]##"-"##"GET /static/tpldata/loginout_en.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:04:03 +0000]##"45.80.21.105, 213.32.65.213"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:04:03 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/js/apxapp.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:04:03 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/js/mustache.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:04:03 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/js/axios.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:04:03 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/js/apxtribcli.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:04:03 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/js/openpgp.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:04:03 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/tpl/listofarticle_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:04:03 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/tpl/pagancreate_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:04:03 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/tpldata/loginout_en.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:04:03 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/tpl/loginout_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:04:03 +0000]##"45.80.21.105, 213.32.65.213"##"GET /nationchains/pagans/idx/alias_all.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:13:08 +0000]##"45.80.21.105, 213.32.65.213"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:13:09 +0000]##"45.80.21.105, 213.32.65.213"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:13:11 +0000]##"45.80.21.105, 213.32.65.213"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:05:13:49 +0000]##"45.80.21.105, 213.32.65.213"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:52:27 +0000]##"45.80.21.105, 213.32.65.213"##"GET / HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:52:27 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/js/mustache.min.js HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:52:27 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/js/apxtribcli.js HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:52:27 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/js/axios.min.js HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:52:27 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/js/apxapp.js HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:52:27 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/js/openpgp.min.js HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:52:27 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/tpl/listofarticle_en.mustache HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:52:27 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/tpl/loginout_en.mustache HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:52:27 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/tpl/pagancreate_en.mustache HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:52:27 +0000]##"45.80.21.105, 213.32.65.213"##"GET /static/tpldata/loginout_en.json HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:52:27 +0000]##"45.80.21.105, 213.32.65.213"##"GET /nationchains/pagans/idx/alias_all.json HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:52:33 +0000]##"45.80.21.105, 213.32.65.213"##"GET / HTTP/1.1" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0"
[28/Apr/2023:14:55:48 +0000]##"23.178.112.203, 213.32.65.213"##"GET /.well-known/acme-challenge/GUe3YG-cIjos0-FidHfQ1HayfKj5xqp0FUGaH4Aeql4 HTTP/1.1" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
[28/Apr/2023:14:55:48 +0000]##"34.222.106.86, 213.32.65.213"##"GET /.well-known/acme-challenge/GUe3YG-cIjos0-FidHfQ1HayfKj5xqp0FUGaH4Aeql4 HTTP/1.1" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
[28/Apr/2023:14:55:58 +0000]##"3.129.208.107, 213.32.65.213"##"GET /.well-known/acme-challenge/GUe3YG-cIjos0-FidHfQ1HayfKj5xqp0FUGaH4Aeql4 HTTP/1.1" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
[28/Apr/2023:14:56:08 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Mobile/15E148 Safari/604.1"
[28/Apr/2023:14:56:20 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/46.0.1180.75 Safari/537.1"
[28/Apr/2023:14:56:22 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:56:23 +0000]##"-"##"GET /static/js/openpgp.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:56:23 +0000]##"-"##"GET /static/js/mustache.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:56:23 +0000]##"-"##"GET /static/js/axios.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:56:23 +0000]##"-"##"GET /static/js/apxtribcli.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:56:23 +0000]##"-"##"GET /static/js/apxapp.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:56:23 +0000]##"-"##"GET /static/tpl/loginout_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:56:23 +0000]##"-"##"GET /static/tpl/pagancreate_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:56:23 +0000]##"-"##"GET /static/tpl/listofarticle_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:56:23 +0000]##"-"##"GET /nationchains/pagans/idx/alias_all.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:56:23 +0000]##"-"##"GET /static/tpldata/loginout_en.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:56:23 +0000]##"-"##"GET /favicon.ico HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET / HTTP/1.1" "-"
[28/Apr/2023:14:57:36 +0000]##"-"##"HELP" "-"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /server-status HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /debug/default/view?panel=config HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /.git/config HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /info.php HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /?rest_route=/wp/v2/users/ HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /.DS_Store HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /.env HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (Linux; Android 6.0; HTC One M9 Build/MRA664447) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.3575.98 Mobile Safari/537.3"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /telescope/requests HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /.vscode/sftp.json HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /s/331323e25363e22333e2331323/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /config.json HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /v2/_catalog HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /about HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /login.action HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:36 +0000]##"-"##"GET /api/search?folderIds=0 HTTP/1.1" "Go-http-client/1.1"
[28/Apr/2023:14:57:43 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0"
[28/Apr/2023:14:58:10 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0"
[28/Apr/2023:14:58:25 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0"
[28/Apr/2023:14:58:25 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0"
[28/Apr/2023:14:58:29 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"
[28/Apr/2023:14:59:19 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
[28/Apr/2023:14:59:21 +0000]##"-"##"GET /.git/HEAD HTTP/1.1" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36"
[28/Apr/2023:15:00:25 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/4E423F"
[28/Apr/2023:15:15:12 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (compatible; Discordbot/2.0; +https://discordapp.com)"
[28/Apr/2023:15:17:04 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (compatible; Discordbot/2.0; +https://discordapp.com)"
[28/Apr/2023:15:56:55 +0000]##"-"##"GET / HTTP/1.1" "-"
[28/Apr/2023:19:29:35 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:36 +0000]##"-"##"GET /.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:36 +0000]##"-"##"GET /.remote HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:37 +0000]##"-"##"GET /.local HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:38 +0000]##"-"##"GET /.production HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:38 +0000]##"-"##"GET //vendor/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:39 +0000]##"-"##"GET //lib/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:39 +0000]##"-"##"GET //lab/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:41 +0000]##"-"##"GET //cronlab/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:42 +0000]##"-"##"GET //cron/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:42 +0000]##"-"##"GET //core/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:43 +0000]##"-"##"GET //core/app/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:43 +0000]##"-"##"GET //core/Datavase/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:43 +0000]##"-"##"GET //database/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:44 +0000]##"-"##"GET //config/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:44 +0000]##"-"##"GET //assets/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:45 +0000]##"-"##"GET //app/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:45 +0000]##"-"##"GET //apps/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:45 +0000]##"-"##"GET //uploads/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:46 +0000]##"-"##"GET //sitemaps/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:46 +0000]##"-"##"GET //saas/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:46 +0000]##"-"##"GET //api/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:46 +0000]##"-"##"GET //psnlink/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:47 +0000]##"-"##"GET //exapi/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:47 +0000]##"-"##"GET //site/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:47 +0000]##"-"##"GET //admin/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:48 +0000]##"-"##"GET //web/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:48 +0000]##"-"##"GET //public/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:48 +0000]##"-"##"GET //en/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:49 +0000]##"-"##"GET //tools/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:49 +0000]##"-"##"GET //v1/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:50 +0000]##"-"##"GET //v2/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:50 +0000]##"-"##"GET //administrator/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:29:50 +0000]##"-"##"GET //laravel/.env HTTP/1.1" "Mozilla/5.0 (Windows; U; MSIE 6.0; Macintosh; .NET CLR 2.1.8201; Intel Mac OS X 10_1_4)"
[28/Apr/2023:19:56:27 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)"
[28/Apr/2023:19:56:28 +0000]##"-"##"GET /favicon.ico HTTP/1.1" "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)"
[28/Apr/2023:20:56:10 +0000]##"-"##"GET /robots.txt HTTP/1.1" "Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-02B Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
[28/Apr/2023:20:56:10 +0000]##"-"##"GET /robots.txt HTTP/1.1" "Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-02B Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
[28/Apr/2023:20:56:11 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-02B Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
[28/Apr/2023:20:56:11 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-02B Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
[28/Apr/2023:20:58:15 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/112.0.5615.121 Safari/537.36"
[28/Apr/2023:20:58:15 +0000]##"-"##"GET /static/js/openpgp.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/112.0.5615.121 Safari/537.36"
[28/Apr/2023:20:58:15 +0000]##"-"##"GET /static/js/mustache.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/112.0.5615.121 Safari/537.36"
[28/Apr/2023:20:58:15 +0000]##"-"##"GET /static/js/apxtribcli.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/112.0.5615.121 Safari/537.36"
[28/Apr/2023:20:58:15 +0000]##"-"##"GET /static/js/axios.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/112.0.5615.121 Safari/537.36"
[28/Apr/2023:20:58:15 +0000]##"-"##"GET /static/js/apxapp.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/112.0.5615.121 Safari/537.36"
[28/Apr/2023:20:58:16 +0000]##"-"##"GET /static/tpl/pagancreate_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/112.0.5615.121 Safari/537.36"
[28/Apr/2023:20:58:16 +0000]##"-"##"GET /static/tpl/listofarticle_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/112.0.5615.121 Safari/537.36"
[28/Apr/2023:20:58:16 +0000]##"-"##"GET /static/tpl/loginout_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/112.0.5615.121 Safari/537.36"
[28/Apr/2023:20:58:16 +0000]##"-"##"GET /nationchains/pagans/idx/alias_all.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/112.0.5615.121 Safari/537.36"
[28/Apr/2023:20:58:16 +0000]##"-"##"GET /static/tpldata/loginout_en.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/112.0.5615.121 Safari/537.36"
[28/Apr/2023:21:13:17 +0000]##"-"##"GET / HTTP/1.1" "-"
[28/Apr/2023:21:13:17 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)"
[28/Apr/2023:21:13:18 +0000]##"-"##"GET /favicon.ico HTTP/1.1" "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)"
[28/Apr/2023:23:56:07 +0000]##"-"##"GET /robots.txt HTTP/1.1" "Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-02B Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
[28/Apr/2023:23:56:07 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-02B Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
[29/Apr/2023:03:06:45 +0000]##"-"##"GET / HTTP/1.1" "Mozilla/5.0 (Linux; Android 11; M2004J15SC) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Mobile Safari/537.36"
[29/Apr/2023:03:06:46 +0000]##"-"##"GET /Public/home/js/check.js HTTP/1.1" "Mozilla/5.0 (Linux; Android 11; M2004J15SC) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Mobile Safari/537.36"
[29/Apr/2023:03:06:48 +0000]##"-"##"GET /static/admin/javascript/hetong.js HTTP/1.1" "Mozilla/5.0 (Linux; Android 11; M2004J15SC) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Mobile Safari/537.36"
[29/Apr/2023:05:53:22 +0000]##"-"##"GET /static/js/mustache.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[29/Apr/2023:05:53:22 +0000]##"-"##"GET /static/js/axios.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[29/Apr/2023:05:53:22 +0000]##"-"##"GET /static/js/openpgp.min.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[29/Apr/2023:05:53:22 +0000]##"-"##"GET /static/js/apxtribcli.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[29/Apr/2023:05:53:22 +0000]##"-"##"GET /static/js/apxapp.js HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[29/Apr/2023:05:53:22 +0000]##"-"##"GET /static/tpl/pagancreate_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[29/Apr/2023:05:53:22 +0000]##"-"##"GET /static/tpl/loginout_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[29/Apr/2023:05:53:22 +0000]##"-"##"GET /static/tpl/listofarticle_en.mustache HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[29/Apr/2023:05:53:22 +0000]##"-"##"GET /nationchains/pagans/idx/alias_all.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[29/Apr/2023:05:53:22 +0000]##"-"##"GET /static/tpldata/loginout_en.json HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
[29/Apr/2023:05:53:22 +0000]##"-"##"GET /favicon.ico HTTP/1.1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"

View File

@ -1 +0,0 @@
{"ants":["usbfarm","hill"]}

View File

@ -1 +1,2 @@
{"hill":{"townId":"hill","nationId":"ants","url":"https://hill.ants.mooo.com","IP":"213.32.65.213","mayorid":"123","status":""},"usbfarm":{"townId":"usbfarm","nationId":"ants","url":"http://adminapx","IP":"127.0.0.1","mayorid":"philc","status":"unchain"},"wall":{"townId":"wall","nationId":"ants","url":"http://wallant.ndda.fr","IP":"213.32.65.213","mayorid":"philc","status":"unchain"}} {"hill":{"townId":"hill","nationId":"ants","url":"https://hill.ants.mooo.com","IP":"213.32.65.213","mayorid":"123","status":""},"usbfarm":{"townId":"usbfarm","nationId":"ants","url":"http://adminapx","IP":"127.0.0.1","mayorid":"philc","status":"unchain"},"wall":{"townId":"wall","nationId":"ants","url":"http://wallant.ndda.fr","IP":"213.32.65.213","mayorid":"philc","status":"unchain"}}

View File

@ -1,9 +0,0 @@
{
"id":"hill",
"nationid":"ants",
"contract":"town_base",
"url":"https://hill.ants.mooo.com",
"IP":"213.32.65.213",
"mayorid":"123",
"status":""
}

View File

@ -14,6 +14,7 @@
firsttimeload:true, firsttimeload:true,
forcereload:true, forcereload:true,
tpl:{ tpl:{
title:"<h1>apXtrib </h1><p>Nation:{{nationId}} Town:{{townId}}</p><p><p> Manage an apXtrib</p></p>",
footer:"{{{msg}}}" footer:"{{{msg}}}"
}, },
tpldata:{ tpldata:{
@ -24,6 +25,7 @@
// @todo check version control to force a reload with forceload // @todo check version control to force a reload with forceload
</script> </script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="static/js/editor.js"></script>
<script src="static/js/openpgp.min.js"></script> <script src="static/js/openpgp.min.js"></script>
<script src="static/js/mustache.min.js"></script> <script src="static/js/mustache.min.js"></script>
<script src="static/js/axios.min.js"></script> <script src="static/js/axios.min.js"></script>
@ -38,11 +40,10 @@
</head> </head>
<body> <body>
<div class="p-5 bg-primary text-white text-center"> <div id="apxtitle" class="p-5 bg-primary text-white text-center" apptoload="app.load('apxtitle','title','conf')" add2data tpldata="static/tpldata/conf_en.json">
<h1>apXtrib & Frontend</h1> <h1>apXtrib</h1>
<p> How to build a quick web app with bootstrap V5 framework and apXtrib back-end</p> <p> Manage and understand apXtrib back-end</p>
</div> </div>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark"> <nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<div class="container-fluid"> <div class="container-fluid">
<ul class="navbar-nav"> <ul class="navbar-nav">
@ -57,23 +58,58 @@
<li><hr class="dropdown-divider"></li> <li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Cipher</a></li> <li><a class="dropdown-item" href="#">Cipher</a></li>
<li><a class="dropdown-item" href="#">AccessRights</a></li> <li><a class="dropdown-item" href="#">AccessRights</a></li>
</ul> <li><hr class="dropdown-divider"></li>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">0dmdb</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Schema Checkjson.js</a></li>
<li><a class="dropdown-item" href="#">Object CRUD with schema</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">nationChains</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Wallet management</a></li> <li><a class="dropdown-item" href="#">Wallet management</a></li>
<li><a class="dropdown-item" href="#">Signed Contracts</a></li> <li><a class="dropdown-item" href="#">Signed Contracts</a></li>
<li><a class="dropdown-item" href="#">NFT generator</a></li> <li><a class="dropdown-item" href="#">NFT generator</a></li>
</ul> </ul>
</li> </li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">Mayor's Town</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Chain a town</a></li>
<li><a class="dropdown-item" href="#">Create Tribe</a></li>
<li><a class="dropdown-item" href="#">Manage Druids</a></li>
<li><hr class="dropdown-divider"></li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">Druid's Tribe</a>
<ul class="dropdown-menu ">
<li><a class="dropdown-item" tribe="" href="#">Manage Persons</a></li>
<li><a class="dropdown-item" tribe="" href="#">Manage web space</a></li>
<li><a class="dropdown-item" tribe="" href="#">Create Objects</a></li>
<li><a class="dropdown-item" tribe="" href="#">Manage Objects</a></li>
<li><hr class="dropdown-divider"></li>
</ul>
<ul class="dropdown-menu">
<li><a class="dropdown-item" onclick="" href="#">My Tribe nameA</a></li>
<li><a class="dropdown-item" onclick="" href="#">My tribe nameB</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">Person's Tribe</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">My tribes</a></li>
<li><a class="dropdown-item" href="#">My Profile</a></li>
<li><a class="dropdown-item" href="#">My Objects</a></li>
<li><a class="dropdown-item" href="#">Message</a></li>
<li><hr class="dropdown-divider"></li>
</ul>
<ul class="dropdown-menu">
<li><a class="dropdown-item" onclick="" href="#">My Tribe nameA</a></li>
<li><a class="dropdown-item" onclick="" href="#">My tribe nameB</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">DevOp's space</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Odmdb Schema</a></li>
<li><a class="dropdown-item" href="#">Odmdb CRUD</a></li>
<li><a class="dropdown-item" href="#">Host a web app</a></li>
<li><hr class="dropdown-divider"></li>
</ul>
</li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="#">Utils</a> <a class="nav-link" href="#">Utils</a>
</li> </li>

View File

@ -6,6 +6,7 @@ server {
# Warning: never add tribes for keeping it private # Warning: never add tribes for keeping it private
root {{{dirname}}}/; root {{{dirname}}}/;
} }
# /plugins/pluginame/components/xxx?plugin=pluginname&pluginkey=key # /plugins/pluginame/components/xxx?plugin=pluginname&pluginkey=key
# acess if exist pluginkey # acess if exist pluginkey
location /plugins/ { location /plugins/ {

View File

@ -116,7 +116,7 @@ app.setupdata = () => {
const url=e.getAttribute(k); const url=e.getAttribute(k);
let localname=url.split('/').slice(-1)[0]; let localname=url.split('/').slice(-1)[0];
if (url.includes('.mustache')) localname=localname.substring(0,localname.length-12); if (url.includes('.mustache')) localname=localname.substring(0,localname.length-12);
if (url.includes('.html') || url.includes('.html') ) localname=localname.substring(0,localname.length-6); if (url.includes('.html') || url.includes('.json') ) localname=localname.substring(0,localname.length-8);
if (!list[k]) list[k]={}; if (!list[k]) list[k]={};
list[k][localname]=url; list[k][localname]=url;
} }

View File

@ -95,7 +95,7 @@ apx.checkdetachedSignature = async (
const verificationResult = await openpgp.verify({ const verificationResult = await openpgp.verify({
msg, // Message object msg, // Message object
signature, signature,
verificationKeys: publicKey, verificationKeys: publicKey
}); });
const { verified, keyID } = verificationResult.signatures[0]; const { verified, keyID } = verificationResult.signatures[0];
try { try {

File diff suppressed because one or more lines are too long

View File

@ -14,6 +14,8 @@
</div> </div>
<div class="col-sm-6" data-spacename="userinterface"> <div class="col-sm-6" data-spacename="userinterface">
<div class="row g-3"> <div class="row g-3">
<h3>A decentralized Identity</h3>
<p>apXtrib allow you to create keys to identify yourself with a universal alias</p>
<div class="col-md-6"> <div class="col-md-6">
<label for="inputalias" class="form-label">Your alias</label> <label for="inputalias" class="form-label">Your alias</label>
<input type="text" class="form-control" id="inputalias" placeholder="A public alias that any one see"> <input type="text" class="form-control" id="inputalias" placeholder="A public alias that any one see">
@ -30,6 +32,7 @@
<button type="button" id="generatekeys" onclick="app.createIdentity(document.getElementById('inputalias').value,document.getElementById('inputpassphrase').value)" class="btn btn-primary">Generate keys</button> <button type="button" id="generatekeys" onclick="app.createIdentity(document.getElementById('inputalias').value,document.getElementById('inputpassphrase').value)" class="btn btn-primary">Generate keys</button>
</div> </div>
<div class="col-12"> <div class="col-12">
<div class="form-check"> <div class="form-check">
<input class="form-check-input" type="checkbox" id="gridCheck"> <input class="form-check-input" type="checkbox" id="gridCheck">
<label class="form-check-label small" for="gridCheck"> <label class="form-check-label small" for="gridCheck">

View File

@ -0,0 +1 @@
{"nationId":"ants","townId":"usbfarm","tribeId":"devenv","comment":"Generate by apxtrib.js with minimum of information"}

View File

@ -1,4 +0,0 @@
{
"schema":"nationchains/schema/www.json",
"lastupdate":0
}

View File

@ -6,6 +6,7 @@ server {
# Warning: never add tribes for keeping it private # Warning: never add tribes for keeping it private
root /home/phil/workspace/apxtrib/; root /home/phil/workspace/apxtrib/;
} }
# /plugins/pluginame/components/xxx?plugin=pluginname&pluginkey=key # /plugins/pluginame/components/xxx?plugin=pluginname&pluginkey=key
# acess if exist pluginkey # acess if exist pluginkey
location /plugins/ { location /plugins/ {

View File

@ -56,6 +56,7 @@
}, },
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@editorjs/editorjs": "^2.26.5",
"apidoc": "^0.54.0", "apidoc": "^0.54.0",
"async": "^3.2.0", "async": "^3.2.0",
"axios": "^0.21.1", "axios": "^0.21.1",