feat(cloudron): add tirreno package artifacts

- Add CloudronStack/output/CloudronPackages-Artifacts/tirreno/ directory and its contents
- Includes package manifest, Dockerfile, source code, documentation, and build artifacts
- Add tirreno-1761840148.tar.gz as a build artifact
- Add tirreno-cloudron-package-1761841304.tar.gz as the Cloudron package
- Include all necessary files for the tirreno Cloudron package

This adds the complete tirreno Cloudron package artifacts to the repository.
This commit is contained in:
2025-10-30 11:43:06 -05:00
parent 0ce353ea9d
commit 91d52d2de5
1692 changed files with 202851 additions and 0 deletions

View File

@@ -0,0 +1,136 @@
import {BaseGrid} from './Base.js?v=2';
import {
renderIpType,
renderUserCounter,
renderNetName,
renderFullCountry,
renderAsn,
renderClickableIpWithCountry,
} from '../DataRenderers.js?v=2';
export class IpsGrid extends BaseGrid {
get orderConfig() {
return [[this.config.orderByLastseen ? 7 : 6, 'desc']];
}
get columnDefs() {
const columnDefs = [
{
className: 'ip-ip-col',
targets: 0
},
{
className: 'ip-country-col',
targets: 1
},
{
className: 'ip-asn-col',
targets: 2
},
{
className: 'ip-newtwork-col',
targets: 3
},
{
className: 'ip-ip-type-col',
targets: 4
},
{
className: 'ip-cnt-col',
targets: 5
},
{
className: 'ip-cnt-col',
targets: 6
},
{
visible: false,
targets: 7
},
{
visible: false,
targets: 8
}
// TODO: return alert_list back in next release
//{
// className: 'yes-no-col',
// targets: 9
//}
];
return columnDefs;
}
get columns() {
const columns = [
{
data: 'ip',
name: 'ip',
render: (data, type, record) => {
const rec = {
ip: record.ip,
ipid: record.id,
country_iso: record.country_iso,
full_country: record.full_country,
isp_name: record.netname,
};
return renderClickableIpWithCountry(rec);
}
},
{
data: 'full_country',
render: renderFullCountry,
},
{
data: 'asn',
name: 'asn',
render: (data, type, record) => {
return renderAsn(record);
},
},
{
data: 'netname',
name: 'netname',
render: (data, type, record) => {
return renderNetName(record, 'short');
}
},
{
data: 'ip_type',
name: 'ip_type',
orderable: false,
render: (data, type, record) => {
return renderIpType(record);
}
},
{
data: 'total_visit',
name: 'total_visit',
render: this.renderTotalsLoader
},
{
data: 'total_account',
name: 'total_account',
render: (data, type, record) => {
return renderUserCounter(data, 2);
}
},
{
data: 'lastseen',
name: 'lastseen',
},
{
data: 'id',
name: 'id',
},
// TODO: return alert_list back in next release
//{
// data: 'alert_list',
// render: renderBoolean
//}
];
return columns;
}
}